网络编程知识点

网络编程知识点

for()thread()的区别, fork() 函数 即分叉函数, 用于创建子进程,同时将父进程所占用的内存中的数据进行拷贝。子进程的执行起始点于fork()函数后,内存占用加倍,通过fork()返回值来判定当前进程是父进程(返回值为子进程号pid)还是子进程(返回值为0),类似细胞分裂; thread() 用于创建线程,内存与主线程共享,当访问数据时,会出现同步问题,join()用于阻塞当前主线程,等待子线程执行完成
通过对上述线程与进程的特点,可以得出:进程的典型应用,服务器处理接收客户端连接请求,每到达一个新的客户请求,fork()一个新的进程来处理该客户的请求
线程的典型应用在于批量数据处理(多核CPU),类似于将一个大的任务划分成多个小的任务,每个小任务占用一个CPU来并行处理

close(int socket_id)只是将该文件描述符所对应的套接字引用计数减1,只有引用计数为0的时候才真正断开连接,而 shutdown(intsocket_id,int how)将根据How参数直接断开连接