您的位置:首页 > 财经 > 金融 > tcp中accept()的理解

tcp中accept()的理解

2025/3/15 20:58:52 来源:https://blog.csdn.net/weixin_73964834/article/details/139128020  浏览:    关键词:tcp中accept()的理解

源码

参数理解

NAMEaccept, accept4 - accept a connection on a socketSYNOPSIS#include <sys/types.h>          /* See NOTES */#include <sys/socket.h>int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);#define _GNU_SOURCE             /* See feature_test_macros(7) */#include <sys/socket.h>int accept4(int sockfd, struct sockaddr *addr,socklen_t *addrlen, int flags);
int sockfd

服务端的曾经绑定的套接字描述符

struct sockaddr *addr, socklen_t *addrlen

包含客户端的ip,端口号,(客户端的属性)

返回值

RETURN VALUEOn  success,  these  system calls return a nonnegative integer that is a descriptor for theaccepted socket.  On error, -1 is returned, and errno is set appropriately.

返回值是一个文件描述符

为什么要用两个套接字??

情景解答:

在一个饭店中,有拉客的,有服务员,张三过去吃饭时,

拉客的先会把张三拉进餐厅,服务员一号就会出现服务张三

李四过来后,拉客的又会吧李四拉进餐厅,服务员二号就会出现

在这个过程中,为什么要用多个人呢?? ----->>> 因为要提高效率

在tcp中,也用两个套接字,

后面的两个参数                                                        就是                来吃饭的人(客户端

返回的套接字描述符                                                     就是                                          服务员

参数的套接字描述符(已经处于监听状态的套接字)   就是                                                  拉客的

注意

我们一般将拉客的套接字,既就是不变的,称为   listensocketfd

他们整体的作用是为了提高效率!!!

所以accept()的目的是为了获取链接的(客户端)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com