好吧,我正在制作一个客户端-服务器应用程序,我可以很好地向我的客户端发送消息,但是当我以相反的方式(客户端到服务器)这样做时,服务器应用程序就会关闭,关于如何解决这个问题的任何帮助?
public void OnDataReceived(IAsyncResult asyn)
{
try
{
SocketPacket socketData = (SocketPacket)asyn.AsyncState;
int iRx = 0;
iRx = socketData.m_currentSocket.EndReceive(asyn);
char[] chars = new char[iRx + 1];
System.Text.Decoder d = System.Text.Encoding.UTF8.GetDecoder();
int charLen = d.GetChars(socketData.dataBuffer,
0, iRx, chars, 0);
System.String szData = new System.String(chars);
area1.AppendText(szData);
WaitForData(socketData.m_currentSocket); // Continue the waiting for data on the Socket
}
catch (ObjectDisposedException)
{
System.Diagnostics.Debugger.Log(0, "1", "\nOnDataReceived: Socket has been closed\n");
}
catch (SocketException se)
{
MessageBox.Show(se.Message);
}
}
在做了一些断点之后,我意识到它在到达这部分后关闭,当它尝试将它附加到 textArea 时,它会在没有错误的情况下关闭。
有想法该怎么解决这个吗?我猜想与线程有关,但不确定为什么它会关闭。