用python语言实现tcp对客服端同时访问一个服务端的客户端与服务端的程序
时间: 2024-05-13 22:16:10 浏览: 19
下面是一个简单的TCP客户端和服务端的Python实现,可以让多个客户端同时连接到一个服务端。
服务端代码:(保存为server.py)
```
import socket
HOST = '' # 监听所有网络接口
PORT = 8888 # 监听指定端口号
# 创建TCP套接字
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 绑定到指定地址和端口号
s.bind((HOST, PORT))
# 开始监听
s.listen(5)
print('Listening on port', PORT)
while True:
# 等待客户端连接
conn, addr = s.accept()
print('Connected by', addr)
# 接收客户端发送的数据
data = conn.recv(1024)
if not data:
break
# 将接收到的数据原样返回给客户端
conn.sendall(data)
# 关闭连接
conn.close()
```
客户端代码:(保存为client.py)
```
import socket
HOST = 'localhost' # 服务端地址
PORT = 8888 # 服务端端口号
# 创建TCP套接字
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 连接到服务端
s.connect((HOST, PORT))
# 发送数据给服务端
s.sendall(b'Hello, world')
# 接收服务端返回的数据
data = s.recv(1024)
# 打印接收到的数据
print('Received', repr(data))
# 关闭连接
s.close()
```
运行服务端程序:
```
python server.py
```
然后在不同的终端中分别运行客户端程序:
```
python client.py
```
可以看到客户端发送的数据被服务端原样返回了回来。
当有多个客户端连接到服务端时,服务端会依次处理每个客户端的请求,并发送相应的响应给客户端。