[問題] 請教一個 TcpListener 問題

看板C_Sharp (C#)作者 (每天都肚子餓)時間18年前 (2007/05/30 16:00), 編輯推噓1(102)
留言3則, 1人參與, 最新討論串1/4 (看更多)
我寫了一個 Server/Client 程式 需求是 Server 一接到 Client 丟的一串 binary data (Byte[]) 就立刻對這段 binary data 做處理 但我發現資料似乎會塞在緩衝區,累積到一定程度再一口氣丟 所以在 Client Side 這端設定 tcpclient.NoDelay = true; 接著,在 Server 跟 Client 中間寫個小程式驗證 Client 也照預期每次 networkstream.write 時就將 data 丟出 但問題就出在 Server 這端 (Server 這端我用 TcpListner 去做 開 thread 後用 networkstream.BeginRead 去接) Server 似乎還是會緩衝起來 累積到一定的資料才拋出來 我試著將 tcplistener.Server.NoDelay = true; 或是將 listener.AcceptTcpClient() 接來的 tcpclient.NoDelay = true; 似乎都無法讓 data 一接到就丟出來 請問是否有什麼方式可以解決這個問題呢?? 在此先謝謝各位 ^^ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 116.59.125.16

05/30 16:57, , 1F
你應該是要設定Blocking=false而不是設定NoDelay..
05/30 16:57, 1F

05/30 16:58, , 2F
還有"如果"你有透過什麼iostream去送資料給socket再送出..
05/30 16:58, 2F

05/30 16:59, , 3F
要注意那個iostream本身可能也會緩衝資料..
05/30 16:59, 3F
文章代碼(AID): #16NIy1pR (C_Sharp)
文章代碼(AID): #16NIy1pR (C_Sharp)