我有以下代码。发生错误,代码只是在_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());
}
}
}
答案 0 :(得分:2)
TCP是一种可靠的连接。您需要读取服务器端的所有数据并正确读取代码以进一步移动。你可能会在超时后得到异常。
修改强>
我刚试过它,实际上即使你不接受套接字或在服务器端读取任何数据,Flush()也不应该阻塞。所以一定是其他问题。