用python3.10.5 的socket模块写一个支持IPv4/IPv6双栈协议的服务端代码
时间: 2023-05-27 16:01:52 浏览: 253
以下是Python 3.10.5的socket模块实现的支持IPv4/IPv6双栈协议的服务端代码:
```python
import socket
# 创建一个TCP/IP套接字
server_sock = socket.socket(socket.AF_INET6, socket.SOCK_STREAM, 0)
# 允许重用端口
server_sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
# 绑定到端口
server_address = ('localhost', 10000)
server_sock.bind(server_address)
# 监听连接
server_sock.listen(1)
print('等待连接...')
# 等待连接并处理请求
while True:
# 等待客户端连接
client_sock, client_address = server_sock.accept()
# 输出客户端信息
print('客户端连接:', client_address)
# 接收数据
data = client_sock.recv(1024)
print('接收到数据:', data.decode('utf-8'))
# 发送响应
response = '嗨,客户端!我是服务端。'
client_sock.sendall(response.encode('utf-8'))
# 关闭连接
client_sock.close()
```
注意,这个代码使用了IPv6双栈协议,因此可以同时支持IPv4和IPv6。如果你想要只使用IPv4协议,将第一行代码改为以下内容即可:
```python
server_sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
```
如果你想要只使用IPv6协议,将第一行代码改为以下内容即可:
```python
server_sock = socket.socket(socket.AF_INET6, socket.SOCK_STREAM)
```
阅读全文