大致过程如下:
客户机通过connect 函数来连接你机器上,某个你已经listen的端口
他的连接将被listen加入队列等待accept函数的调用。
你调用accept函数告诉他你准备连接。
accept函数返回一个新的套接字描述符,这个描述符代表了这个连接。
这时候,我们有两个套接字描述符,返回给你的就是和远程计算机的连接,而第一个套接字描述符仍然在你的机器上原来的那个端口上listen
得到的新的套接字的描述符就可以调用 send 和recv的操作了
int accept(int sockfd, void* addr, int *addrlen);
参数:
sockfd : 正在listen的套接字描述符
addr : 一般是指向一个 sockaddr_in 结构的指针,里面存储着远程计算机的信息
addrlen : 通常是 sizeof(struct sockaddr_in)
返回值:
-1 代表出错
正常返回一个新的套接字描述符