当前位置: 技术问答>linux和unix
simple socket insight,高手请进。。。
来源: 互联网 发布时间:2016-04-08
本文导语: 请教个简单的问题: TCP连接: 1、int listen(int sockfd, int backlog); backlog是最大的同时并求并发数吗?是包括完全建立连接和未完全建立连接的队列中的所有连接数吗? 比如:如果backlog是5,连接的客户端可以多于5吧...
请教个简单的问题:
TCP连接:
1、int listen(int sockfd, int backlog);
backlog是最大的同时并求并发数吗?是包括完全建立连接和未完全建立连接的队列中的所有连接数吗?
比如:如果backlog是5,连接的客户端可以多于5吧?
2、accept之后,服务器端的端口随机生成?。。。客户端的端口呢?还是客户端请求连接时指定的那个?
TCP连接:
1、int listen(int sockfd, int backlog);
backlog是最大的同时并求并发数吗?是包括完全建立连接和未完全建立连接的队列中的所有连接数吗?
比如:如果backlog是5,连接的客户端可以多于5吧?
2、accept之后,服务器端的端口随机生成?。。。客户端的端口呢?还是客户端请求连接时指定的那个?
|
服务器的端口是你listen的端口,而Client源端口是不自动分配的,而目的端口是服务器 listen的端口.
|
1、int listen(int sockfd, int backlog);
backlog是最大的同时并求并发数吗?是包括完全建立连接和未完全建立连接的队列中的所有连接数吗?
比如:如果backlog是5,连接的客户端可以多于5吧?
backlog只是你的listen队列的长度(未处理的连接),换言之就是说你的最多允许5个等待连接。
2、accept之后,服务器端的端口随机生成?。。。客户端的端口呢?还是客户端请求连接时指定的那个?
服务器和客户端的端口可以随机也可以是指定的(man bind)
|
1,backlog:可以容纳的挂起进入连接的最大数量。如果一个连接请求到来时队列已满,客户将可能会接收到ECONNREFUSED错误。不包括完全建立的连接。
2、服务器端的端口用应该是随机生成的范围好像是1024~5000,客户端也一样,当你掉用connect的时候系统就会自动分一个。connect指定的那个端口是你服务器listen绑定的端口
2、服务器端的端口用应该是随机生成的范围好像是1024~5000,客户端也一样,当你掉用connect的时候系统就会自动分一个。connect指定的那个端口是你服务器listen绑定的端口
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。