python起端口脚本时 scocket.error address already in use
时间: 2024-03-01 21:49:46 浏览: 31
这个错误通常是因为你尝试在已经被占用的端口上启动一个新的服务器。解决办法是找到占用该端口的进程并停止它,或者使用一个空闲的端口。你可以使用以下命令查看当前正在运行的进程和它们使用的端口:
```
$ sudo netstat -nlp | grep :<port_number>
```
其中 `<port_number>` 是你正在尝试启动的端口号。该命令将列出使用该端口的进程的详细信息,包括进程 ID(PID)。使用以下命令可以停止使用该端口的进程:
```
$ sudo kill <PID>
```
其中 `<PID>` 是你想要停止的进程的 PID。如果你想使用一个空闲的端口,可以在代码中指定一个新的端口号。例如:
```python
import socket
HOST = '127.0.0.1'
PORT = 8888 # 你可以将这个端口号改成一个空闲的端口号
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.bind((HOST, PORT))
s.listen()
print(f'Server started on port {PORT}')
while True:
conn, addr = s.accept()
with conn:
print(f'Connected by {addr}')
while True:
data = conn.recv(1024)
if not data:
break
conn.sendall(data)
```