jsontong
jsontong
采纳率100%
2021-03-10 09:47 阅读 55

我想用python监听服务器下一个端口接收到的数据,在服务器上运行失败

这是我的代码

import socket,time
host = ''
port = 50015
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind((host, port))
server.listen(1)  # 接收的连接数
client, address = server.accept() 
while True:  # 循环收发数据包,长连接
        data = client.recv(1024)
        print(data.decode('utf-8'))
        if data==None:
            break
        time.sleep(0.5)

服务器运行报错信息为:

Traceback (most recent call last):
  File "server.py", line 15, in <module>
    data = client.recv(1028)
ConnectionResetError: [Errno 104] Connection reset by peer

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

2条回答 默认 最新

  • 已采纳
    m0_54740405 北风之神Boreas 2021-03-10 10:13

    正常情况【linux centos8测试,win系统复杂,不测试】【你应该把运行过程,启动,连接,测试的流程截图上来】

    你的程序【运行正常】

    1 只能接收一个客户端连接

    2 对端【客户端】关闭后,会导致死循环recv  

    3 对端【客户端】产生中断信号【如ctrl+c 会在bash 进程下产生,并传输到当前的py进程】py进程会出错。

    其它情况没有了,建议你的测试详细过程 截图。

    [下面是测试你的程序启动,连接,测试,平台都给出来了,没有问题]

    【有兴趣可以阅读https://blog.csdn.net/m0_54740405/article/details/112858405?spm=1001.2014.3001.5502

    点赞 1 评论 复制链接分享
  • jsontong jsontong 2021-03-10 09:50

    报错那里应该是1024,不是1028.

    点赞 评论 复制链接分享

相关推荐