我正在为使用自己的协议编写的Python服务器上工作,但我遇到了问题。 客户端连接到服务器,并且sendall()
的三条数据:数据包标识字节,字符串长度和UTF-8编码字符串。从客户端接收的TCP服务器有时不起作用
在客户端,我没有错误,但在服务器端,此:
error: [Errno 10054] An existing connection was forcibly closed by the remote host
发生。错误发生在每次不同的行上,有时候是识别字节,有时在读取字符串长度时,有时在读取字符串本身时,有时它会很好地工作,就像它应该的那样。
这是怎么回事?服务器计算机具有防火墙异常。客户端连接,连续发送三个数据,然后关闭套接字。我做得太快了吗?
谢谢。
请从服务器和客户端代码发布(即复制,粘贴,格式化SO)相关代码片段。最好是别人可以运行的代码来自己尝试。此外,请描述您尝试解决此问题的任何尝试(http://whathaveyoutried.com/)以及为什么您认为他们无法正常工作。 – crayzeewulf 2013-03-09 01:17:06
管理这个的代码分散在几个类,@crazewulf,这将是一个很大的努力,试图以可重用的方式重建。这个错误看起来像一个套接字级的错误,我希望有人会给我一个普遍的答案,我提供的一般信息。如果没有发生,我会制作样品。谢谢。 – Jishaxe 2013-03-09 01:22:34
OP,在这种情况下,使用[this](http://docs.python.org/2/library/socketserver.html#socketserver-tcpserver-example)代码作为示例编写您自己的小型TCP服务器和客户端,并发送与您的大型应用程序相同的数据。看看你是否可以重现这个问题。用这个测试代码和错误消息报告结果(如果有的话)。基本上,试着把问题归结为一个小的代码片段,SO可以被其他人用来调试这个问题。 – crayzeewulf 2013-03-09 01:24:14