通过 tcp 错误 { "An existing connection was forcibly closed by the remote host" } 发送和接收 xml 数据



有谁能帮帮我吗?我试图发送数据(只是一个字符串最初)在tcp使用下面的代码。这只是一个初始测试,看看我可以使用TcpClient写入端口,然后立即读取发送的数据。代码工作了,我可以发送一个字符串,并读取它。

然而,它突然停止工作,并出现以下错误:{"远程主机强制关闭现有连接"}错误码10054

我没有关闭一个现有的连接,或者我已经超过了允许的最大连接数。

使用netstat,我只能看到一个tcp端口正在监听我的ip地址。这是我一直在使用的端口,正如我上面说的,它工作,然后突然停止工作,而不是产生上面的错误。

我对这种方式发送和接收数据的知识非常有限。

有谁能帮我找到解决办法吗?要修复上述代码或端口,以便我可以再次读取发送的字符串。或者如果有人有任何其他的代码建议发送和接收xml通过tcp?非常感谢。

许多谢谢。

String response = String.Empty;
TcpClient client = new TcpClient(hostname, port); 
stream = client.GetStream();
StreamWriter writer = new StreamWriter(stream, Encoding.UTF8);
writer.AutoFlush = false;
writer.Write(Encoding.UTF8.GetBytes(message).Length);
writer.Write(message);
writer.Flush();
StreamReader reader = new StreamReader(stream, Encoding.UTF8);
response = reader.ReadLine();
Console.WriteLine(response);
stream.Close();

您的代码看起来不错。在我的工作项目中,我使用了几乎相同的代码。我建议您检查以下内容:

  1. 检查你发送的xml块的大小?
  2. 尝试如果可能的话重新启动tcp服务器(如果你有访问它)?
  3. 您是否有访问tcp服务器的源代码,或者您可以将其部署到本地开发人员机器并在本地机器上检查其功能?

相关内容

最新更新