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 に答える