为什么我的程序暂停,没有异常抛出?

时间:2012-07-26 06:53:19

标签: c# exception

我有以下代码。发生错误,代码只是在_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());
       }
   }    
}

1 个答案:

答案 0 :(得分:2)

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

修改

我刚试过它,实际上即使你不接受套接字或在服务器端读取任何数据,Flush()也不应该阻塞。所以一定是其他问题。