程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> 淺談socket TCP編程中connect的一些坑

淺談socket TCP編程中connect的一些坑

編輯:關於C++

淺談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的一些坑全部內容了,希望大家多多支持~

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved