socket和accept返回的套接字不同之处。

您所在的位置:网站首页 reception和accept的区别 socket和accept返回的套接字不同之处。

socket和accept返回的套接字不同之处。

2023-08-15 07:46| 来源: 网络整理| 查看: 265

1、socket返回的套接字用于listen、bind或者connect,服务端调用listen、bind之后再用于生产accept_fd,客户端则connect后直接可以读写和服务端通讯。

2、accept调用socket产生的套接字并返回xi套接新的,用于和客户端通讯读写,若一台服务器的一个端口连接了三个客户端,则有一个sock_fd和三个accept_fd,共四个套接字描述符。

3、accept返回成功后,可以直接关闭socket产生的套接字sock_fd,不影响后面accept_fd的通讯。

4、客户端关闭连接后,服务器需要关闭所有套接字,包括socket_fd和accept_fd。

 

举例:一个客户端和一个服务端连接

双方socket产生各自的c_sock_fd和s_sock_fd;

s_sock_fd进行bind和listen后,accept准备接受客户端的连接请求;

c_sock_fd调用connect请求连接服务端;

服务端接到请求产生accept_fd,届时accept_fd和c_sock_fd两个套接字可以通讯,而s_sock_fd则可以关闭;

客户端关闭close(c_sock_fd)后,服务端关闭所有未关闭的fd,通讯彻底断开。

(服务端的socket产生的套接字只是用来监听的,不能直接用于发送接收数据。)



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3