c# - TCP客户端连接错误,现有连接被远程主机强行关闭
问题描述
我在服务器 2012 R2 中运行 Win 服务,服务连接总是掉线并且我得到以下错误,我还分享了 TCP 连接代码。
错误信息:
无法从传输连接读取数据:现有连接被远程主机强行关闭。InnerExceptionMessage 远程 hostStackTrace 在 System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size) 处强制关闭现有连接
try
{
IsStop = false;
TcpClient client = null;
TcpListener server = new TcpListener(IPAddress.Parse(ipAddress), port);
server.Start();
IsRunning = true;
while (IsRunning)
{
client = await server.AcceptTcpClientAsync();
try
{
using (NetworkStream stream = client.GetStream())
{
try
{
byte[] dataArray = new byte[36];
var bytesRead = stream.Read(dataArray, 0, 36);
if (dataArray[0] != 0)
{
if (processString(dataArray, 4, 7) != 0) // check ID
{
Thread thread = new Thread(new ParameterizedThreadStart(DataProcessThreadAsync));
object[] obj = new object[] { dataArray, thread };
thread.Start(obj);
}
}
stream.Close();
stream.Dispose();
}
catch (Exception ex)
{
LoggerHelper.Instance.LogError(ex);
}
}
}
catch(Exception ex)
{
LoggerHelper.Instance.LogError(ex);
}
IsStop = true;
}
}
catch (Exception ex)
{
LoggerHelper.Instance.LogError(ex);
}
请帮助我,在此先感谢。
解决方案
推荐阅读
- perl - 子叉进程返回值
- python - Python OpenCV 通过读取图像上的二维码来调整图像大小
- java - 我可以在 if 语句中声明一个数组吗?
- python - 我如何在熊猫的这个数据框中从长到宽?
- java - JAVA中“while循环”后的输出不一致
- linux - sftp 使用代理问题:ssh_dispatch_run_fatal:连接到未知端口 65535:连接损坏
- android - recyclerview 中的nestedscrollview 花费大量时间来显示数据
- sql - 将团购与窗口功能相结合?
- javascript - 在图像中查找十六进制颜色和 X、Y
- r - 循环遍历 R 中的空数据框并将值分配给列