TCPIp是不是一种计算机语言,浅谈socket TCP编程中connect的一些坑

1.服务端listen成功后,系统就自动接收客户端请求了

man listen:

其中有一段

The  behavior of the backlog argument on TCP sockets changed with Linux

2.2.  Now it specifies the  queue  length  for  completely  established

sockets  waiting  to  be  accepted, instead of the number of incomplete

connection requests.  The maximum length of the  queue  for  incomplete

sockets  can be set using /proc/sys/net/ipv4/tcp_max_syn_backlog.  When

syncookies are enabled there is no logical maximum length and this set‐

ting is ignored.  See tcp(7) for more information.

也就是说,listen成功后,系统会自动接受bocklog个客户端请求,并不需要服务端accept,就算服务端没有accept,客户端connect仍然返回成功。accept仅仅是从backlog队列中取出一个已经建立了完整TCP连接的套接字。

2.一个fd   socket了connect后,不能再次connect

再次connect,会报错:Transport endpoint is already connected

此时想要再次connect,必须重置fd..

10fa0f1937486c1214a5cdbe14c5e7bc.png

连接建立后socket的状态被置为SS_ISCONNECTED,因此在调用close重置此socket状态之前,会报错。。

以上就是小编为大家带来的浅谈socket TCP编程中connect的一些坑全部内容了,希望大家多多支持脚本之家~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值