雷火电竞-中国电竞赛事及体育赛事平台

歡迎來到入門教程網!

C語言

當前位置:主頁 > 軟件編程 > C語言 >

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

來源:本站原創(chuàng)|時間:2020-01-10|欄目:C語言|點擊:

1.服務端listen成功后,系統(tǒng)就自動接收客戶端請求了

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成功后,系統(tǒng)會自動接受bocklog個客戶端請求,并不需要服務端accept,就算服務端沒有accept,客戶端connect仍然返回成功。accept僅僅是從backlog隊列中取出一個已經建立了完整TCP連接的套接字。

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

再次connect,會報錯:Transport endpoint is already connected

此時想要再次connect,必須重置fd..

連接建立后socket的狀態(tài)被置為SS_ISCONNECTED,因此在調用close重置此socket狀態(tài)之前,會報錯。。

以上就是小編為大家?guī)淼臏\談socket TCP編程中connect的一些坑全部內容了,希望大家多多支持我們~

上一篇:標準CSV格式的介紹和分析以及解析算法實例詳解

欄    目:C語言

下一篇:使用C語言編寫圣誕表白程序

本文標題:淺談socket TCP編程中connect的一些坑

本文地址:http://www.jygsgssxh.com/a1/Cyuyan/1944.html

網頁制作CMS教程網絡編程軟件編程腳本語言數據庫服務器

如果侵犯了您的權利,請與我們聯(lián)系,我們將在24小時內進行處理、任何非本站因素導致的法律后果,本站均不負任何責任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網 版權所有