socket和accept返回的套接字不同之处。 |
您所在的位置:网站首页 › reception和accept的区别 › socket和accept返回的套接字不同之处。 |
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 |