通过tcp错误发送和接收xml数据{“现有连接被远程主机强行关闭”}

时间:2015-09-01 15:14:54

标签: xml sockets c#-4.0 tcp

任何人都可以帮助我。我试图使用下面的代码在tcp上发送数据(最初只是一个字符串)。这只是一个初步测试,看我可以使用TcpClient写入端口,然后立即读取发送的数据。代码工作,我可以发送一个字符串,并阅读它。

但是,它突然停止了以下错误: {“远程主机强行关闭现有连接”} 错误代码10054

在我看来,我没有关闭现有连接,或者我已超过允许的最大连接数。

使用netstat我只能看到一个正在侦听我的IP地址的tcp端口。这是我一直在使用的端口,正如我上面说的那样它起作用然后突然停止工作,反而产生了上述错误。

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

任何人都可以帮我找到解决方案吗?要么修复上面的代码或端口,那么我可以再次读取发送的字符串。或者,如果有人有任何其他代码建议通过TCP发送和接收xml?非常感谢。

非常感谢。

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 个答案:

答案 0 :(得分:0)

您的代码似乎很好。在我的工作项目中,我使用了几乎相同的代码。我建议你检查以下内容:

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