如何用python是客户端1向服务端发送一个字符串,再由客户端2接收这个字符串并打印
时间: 2024-03-11 22:43:34 浏览: 18
以下是一个使用 Python socket 模块实现的客户端-服务器端通信的示例代码:
服务端代码:
```python
import socket
HOST = '127.0.0.1' # 服务器端IP地址
PORT = 65432 # 服务器端口号
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.bind((HOST, PORT))
s.listen()
conn, addr = s.accept()
with conn:
print('连接来自:', addr)
while True:
data = conn.recv(1024)
if not data:
break
conn.sendall(data)
```
客户端1代码:
```python
import socket
HOST = '127.0.0.1' # 服务器端IP地址
PORT = 65432 # 服务器端口号
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.connect((HOST, PORT))
s.sendall(b'Hello, world')
```
客户端2代码:
```python
import socket
HOST = '127.0.0.1' # 服务器端IP地址
PORT = 65432 # 服务器端口号
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.connect((HOST, PORT))
data = s.recv(1024)
print('接收到的数据:', data.decode())
```
这个示例代码实现了以下功能:
1. 服务端监听指定的端口,等待客户端连接。
2. 客户端1连接到服务端并发送一个字符串。
3. 服务端接收到客户端1发送的字符串,并将其发送回客户端1。
4. 客户端2连接到服务端并接收服务端发送回来的数据,并打印出来。
注意,在这个示例代码中,客户端1和客户端2是分别运行的两个程序,不能同时运行在同一台机器上。如果需要在同一台机器上运行多个客户端程序,可以在客户端代码中指定不同的端口号,例如:
```python
import socket
HOST = '127.0.0.1' # 服务器端IP地址
PORT1 = 65432 # 客户端1使用的端口号
PORT2 = 65433 # 客户端2使用的端口号
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.connect((HOST, PORT1))
s.sendall(b'Hello, world from client 1')
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.connect((HOST, PORT2))
data = s.recv(1024)
print('接收到的数据:', data.decode())
```