淺談socket TCP編程中connect的一些坑。本站提示廣大學習愛好者:(淺談socket TCP編程中connect的一些坑)文章只能為提供參考,不一定能成為您想要的結果。以下是淺談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..
銜接樹立後socket的形態被置為SS_ISCONNECTED,因而在調用close重置此socket形態之前,會報錯。。
以上就是為大家帶來的淺談socket TCP編程中connect的一些坑全部內容了,希望大家多多支持~