weixin_55136170 2021-07-13 20:31 采纳率: 50%
浏览 24

为啥使用多进程实现TCP服务端并发,一直提示错误?

请教: 我在使用多进程实现TCP服务端并发的时候,客户端一连上,服务端就报错(同样的代码采用多线程实现的话则一切正常),问题出在哪里呢?
#服务端代码:

from multiprocessing import Process
import socket

server = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
server.bind(('127.0.0.1',11111))
server.listen(5)

def work(conn):
    while True:
        try:
            data = conn.recv(1024)
            print('服务器端收到的信息:{}'.format(data.decode('utf-8')))
            conn.send(data.upper())
        except Exception as e:
            print('好像发生了什么错误',e)
            break



if __name__ == '__main__':
    while True:
        conn, client_ip_port = server.accept()
        print(conn)
        p = Process(target=work, args=(conn,))
        p.start()
        conn.close()

#客户端代码:

import socket
client = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
client.connect(('127.0.0.1',11111))
while True:
    msg = input('请输入你的指令>>>').strip()
    client.send(msg.encode('utf-8'))
    data = client.recv(1024)
    print('服务器发来的消息:{}'.format(data.decode('utf-8')))
    

客户端一运行,连上服务端之后,则马上报错
错误提示:
OSError: [WinError 10048] Only one usage of each socket address (protocol/network address/port) is normally permitted

  • 写回答

2条回答 默认 最新

  • 咕泡-Tony 2021-07-13 20:41
    关注

    多次绑定, 导致端口冲突.

    评论

报告相同问题?

问题事件

  • 创建了问题 7月13日

悬赏问题

  • ¥15 数据库原理及应用上机练习题
  • ¥15 征集Python提取PDF文字属性的代码
  • ¥15 如何联系真正的开发者而非公司
  • ¥15 有偿求苍穹外卖环境配置
  • ¥15 代码在keil5里变成了这样怎么办啊,文件图像也变了,
  • ¥20 Ue4.26打包win64bit报错,如何解决?(语言-c++)
  • ¥15 clousx6整点报时指令怎么写
  • ¥30 远程帮我安装软件及库文件
  • ¥15 关于#自动化#的问题:如何通过电脑控制多相机同步拍照或摄影(相机或者摄影模组数量大于60),并将所有采集的照片或视频以一定编码规则存放至规定电脑文件夹内
  • ¥20 深信服vpn-2050这台设备如何配置才能成功联网?