[問題] TcpCilent 連線狀況

看板C_Sharp (C#)作者 (孤單的人)時間7年前 (2018/05/15 10:32), 編輯推噓1(101)
留言2則, 2人參與, 7年前最新討論串1/1
請問用TCPClient socket 去做server - client 連線 在client 端要怎麼去檢查是否還連線呢? 用了幾個方法 還是無法正確告知已斷線 return !(socket.Poll(1, SelectMode.SelectRead) && socket.Available == 0); byte[] testByte = new byte[1]; //使用Peek測試連線是否仍存在 if (socket.Connected && socket.Poll(0, SelectMode.SelectRead)) notclosed = (socket.Receive(testByte, SocketFlags.Peek) == 0); client.TcpClient.Connected && client.TcpClient.Client.Connected 以上都會回傳true 即使斷線了... 難道要一直跟server request data 來驗證是否連線嗎? 這樣client一多 server就爆了 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 124.219.34.220 ※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1526351577.A.CBD.html

05/16 16:54, 7年前 , 1F
你有收到timeout嗎? 你可以試試看多少c會爆s
05/16 16:54, 1F

05/17 22:46, 7年前 , 2F
文章代碼(AID): #1Q-aRPoz (C_Sharp)
文章代碼(AID): #1Q-aRPoz (C_Sharp)