为什么提示我每个套接字地址(协议/网络地址/端口)只允许使用一次。

来源:5-2 案例—HTTP协议实现返回文本信息的Web服务器

那吾克热er

2021-11-16 13:17:27

https://img.mukewang.com/climg/61933eaa091b610e21180998.jpg

socket
multiprocessing
handle_client(client):
    client_data=client.recv()
    (%client_data)
    resp_start_line=resp_head_line=resp_data=data = resp_start_line+resp_head_line++resp_data
    client.send(data.encode())
    client.close()


server=socket.socket(=socket.SOCK_STREAM)
server.bind((,))
server.listen()
()
:
    client,add=server.accept()
    (%(add[],add[]))
    client_process= multiprocessing.Process(=handle_client,=(client,))
    client_process.start()


写回答

1回答

时间,

2021-11-16

同学,你好!是同学使用的8081端口被占用了,因此会报错。

同学可以更换其他端口,也可以使用下述方法查看哪个程序占用了端口8081并结束该进程。

例:将例子中的8000修改为8081即可

1、使用命令查看被占用端口的PID,例如查看8000端口,重点是检查与你测试的ip相同的端口和进程,并记录对应的PID

netstat -aon|findstr "8000"

http://img.mukewang.com/climg/5ebdfdc009ecbe4306200066.jpg

2、查看指定PID的进程:

tasklist|findstr "11180"回车执行该命令。查看是哪个进程或者程序占用了 8000 端口。

http://img.mukewang.com/climg/5ebdfd3709a3795706220049.jpg

3、结束进程,强制(/F参数)杀死 pid 为 11180的所有进程包括子进程(/T参数):

taskkill /T /F /PID 11180

祝学习愉快!

1

0 学习 · 1672 问题

查看课程