Re: [其他] 悲慘的封測
※ 引述《invalid (everlasting)》之銘言:
: >有人可以教我設定connect()的timeout嗎?
: >上課不專心沒學好Orz
: 還在忙星期二的期末報告XD...
: 我就我所知來回答一些好了
: 我不知道你是用哪一種socket
: winsock還是MFC的sock,還是直接用包裝好的HTTP連接器
: MFC的sock有非阻斷(non-blocking)模式
: 開了之後如果一段時間沒有event進來就可以直接判斷
: winsock的話可以先將socket一樣設定成非阻斷式
: 然後在透過select去檢查socket是不是可寫入的狀態
: 如果可以寫入就代表連線建立
: 建立後可再改回阻斷式,程式寫起來比較方便
: 包裝好的話..就要繞圈圈了
: 看是建一個新的thread去連線
: 連線前設定semaphore,連好線後釋放
: 降外界程式可以定時去檢查semaphore已達到timeout的功能
如果是 Socket.Connect() [.Net System.Net.Sockets] 的話
直接對 Socket 更改下面兩個屬性即可
public int ReceiveTimeout { get; set; }
public int SendTimeout { get; set; }
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 221.169.218.183
討論串 (同標題文章)
HOT_Game 近期熱門文章
PTT遊戲區 即時熱門文章