簡體   English   中英

如何在C套接字上將超時設置為“ connect()”函數?

[英]How to set a timeout to “connect()” function on C sockets?

我必須同時在同一子網上連接幾個IP。 買它花了我太多時間! (將近25秒)等待所有“ connect() ”函數完成!

如何在Winsock,CPP中優化這種行為? 我發現一種叫做“ select ”的東西,但目前看來它僅適用於linux。

select()可在Unix,Linux,Windows,Netware以及我曾經在其上進行過測試的所有其他平台上使用。

  1. 將套接字置於非阻塞模式。
  2. 調用connect() 它將因EAGAIN / EWOULDBLOCK或EINPROGRESS而失敗。
  3. 在套接字設置為writefds ,以所需的超時時間調用select() ,即選擇可寫性。
  4. 當套接字變為可寫狀態時,便已連接。 如果在超時時間內沒有發生這種情況,請將其關閉,否則請根據需要將其重置為阻止模式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM