问题遇到的现象和发生背景
使用TCP协议,服务端和客户端能够稳定通信,但是服务端和客户端中一个插件进行TCP进行通信就会有问题,通过测试插件中的send函数没有异常能发送,但是执行receive()函数程序就会卡在那里,执行if (TcpClient.Poll(-1, SelectMode.SelectRead))也会卡在当前位置,不知道什么原因。
问题相关代码,请勿粘贴截图
Debug.WriteLine("Timer");
CheckServer(null);
Debug.WriteLine("CheckServer");
try
{
Debug.WriteLine("CheckServer 11111");
try
{
if(TcpClientEx.IsOnline(TcpClient))
{
Debug.WriteLine("Test");
if (TcpClient.Poll(-1, SelectMode.SelectRead))
{
//int numbers = TcpClient.Receive(Buffer, 4, 0);
//Debug.WriteLine(numbers);
Debug.WriteLine("CheckServer 22222"); //打印不出来
}
}
else
{
Debug.WriteLine("BBBBBBBBBBBB"); //打印不出来
}
//ReadServertDataEx(0);
Debug.WriteLine(" ReadServertDataEx(0);"); //打印不出来
}
catch(ObjectDisposedException aa)
{
Debug.WriteLine(aa);
}
}
catch(Exception ex)
{
Debug.WriteLine("Erro Receive");
Debug.WriteLine(ex);
}
Debug.WriteLine("CCCCCCCCCCCC"); //打印不出来
运行结果及报错内容
Plugin Invoked
InitializeClient()
127.0.0.1
7654
Plugin Connected!
Timer
Send Ping!
4
Send2
39
CheckServer
CheckServer 11111
Test
线程 0x4570 已退出,返回值为 0 (0x0)。
线程 0x443c 已退出,返回值为 0 (0x0)。
线程 0x35c8 已退出,返回值为 0 (0x0)。
Send Ping!
4
Send2
39
线程 0x1fc8 已退出,返回值为 0 (0x0)。
线程 0x59d4 已退出,返回值为 0 (0x0)。
线程 0x51c0 已退出,返回值为 0 (0x0)。
Send Ping!
4
Send2
39
我的解答思路和尝试过的方法
现在不知道问题到底在哪?
我想要达到的结果
如何让客户端中的插件也能正常接收数据