python TCP 关闭服务端
时间: 2023-10-13 12:12:12 浏览: 158
要关闭 Python TCP 服务端,需要使用 socket 库和 try-except 语句。具体操作如下:
1. 导入 socket 库:
```python
import socket
```
2. 创建 server_socket 对象并绑定 IP 地址和端口号:
```python
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(('0.0.0.0', 8888))
```
其中,AF_INET 表示使用 IPv4 协议,SOCK_STREAM 表示使用 TCP 协议。
3. 启动服务端并监听客户端连接:
```python
server_socket.listen(5) # 最多同时处理 5 个客户端连接
while True:
client_socket, client_address = server_socket.accept()
# 处理客户端请求
```
其中,accept() 方法会阻塞进程直到有客户端连接进来,返回值为一个元组,分别为客户端 socket 对象和地址。
4. 在 try-except 语句中处理客户端请求:
```python
try:
# 接收客户端请求并处理
while True:
# 处理请求
except KeyboardInterrupt:
# 用户按下 Ctrl+C 退出程序
finally:
# 关闭客户端和服务端 socket
client_socket.close()
server_socket.close()
```
在 try 语句块中处理客户端请求,用户按下 Ctrl+C 时,程序会抛出 KeyboardInterrupt 异常,进入 except 语句块,finally 语句块用来关闭客户端和服务端 socket。
完整代码如下:
```python
import socket
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(('0.0.0.0', 8888))
server_socket.listen(5)
try:
while True:
client_socket, client_address = server_socket.accept()
# 处理客户端请求
except KeyboardInterrupt:
client_socket.close()
server_socket.close()
```
注意,该代码只演示了如何关闭服务端,具体的请求处理需要根据实际情况而定。
阅读全文