0

我有以下代码。发生错误,代码只是在_clientStreamWriter.Flush();方法处中断SendData

没有给出错误,没有抛出异常......程序只是停止。有什么帮助吗?谢谢!

public class clsTCPClient
{
   TcpClient TCPClient = new TcpClient();
   StreamWriter _clientStreamWriter;

   public bool Connect(string Dest, int Port)
   {
       try
       {
           if (!TCPClient.Connected)
           {
               TCPClient.Connect(Dest, Port);
               _clientStreamWriter = new StreamWriter(TCPClient.GetStream());
           }
       }
       catch(Exception e)
       {
           utilities.WriteLog(utilities.LogDir + "\\AEOS.log", e.ToString());
           return false;
       }
       return true;
   }

   public void SendData(string Data)
   {      
       try
       {
           //send message to server
           _clientStreamWriter.WriteLine(Data);
           _clientStreamWriter.Flush();

       }
       catch(Exception e)
       {
           utilities.WriteLog(utilities.LogDir + "\\AEOS.log", e.ToString());
       }
   }    
}
4

1 回答 1

2

TCP 是一种可靠的连接。您需要读取服务器端的所有数据并正确完成读取,以便您的代码进一步移动。超时后您可能会收到异常。

编辑:

我刚刚对其进行了测试,即使您不接受套接字或在服务器端读取任何数据,Flush() 也不应该阻塞。所以肯定是其他问题。

于 2012-07-26T06:57:37.767 回答