找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 102|回复: 0

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

1

主题

1

帖子

1

积分

贫民

积分
1
随风_Esy1H 发表于 2021-7-14 20:40:10 | 显示全部楼层 |阅读模式

请教: 我在使用多进程实现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

'''


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表