2011-04-26 119 views
0

我在服務器和客戶端之間有TCP/IP連接。連接建立後,服務器將開始向客戶端發送大量數據。我遇到的問題是,如果連接速度很慢,在某些時候服務器將無響應。我想這是因爲它正在緩衝等待已經發送的數據被確認的數據。C#套接字。在慢速連接上通過TCP/IP發送數據

在嘗試發送數據以檢查當前緩衝區的大小之前是否有辦法,因此我知道在繼續發送數據之前我應該​​等待?

謝謝。

這是我在做什麼來發送數據:

System.Net.Sockets.Socket ClientSocket; 
... 
public void Send(byte[] data, int size) 
    { 
     try 
     { 
      SocketAsyncEventArgs e = new SocketAsyncEventArgs(); 
      e.SetBuffer(data, 0, size); 
      bool pending = ClientSocket.SendAsync(e); 
     } 
     catch (Exception ex) 
     { 

     } 
    } 

回答

0

我找到了解決辦法。基本上我只應該發送數據時

ClientSocket.Poll(0, SelectMode.SelectWrite)是真的。

簡單而有效!