设计一个基于流套接字的客户端/服务器通信程序。具体要求如下: (1)分别编写服务器端程序和客户端程序(端口号为1888)。 (2)客户端向服务器发送信息,服务器接收并显示信息。 (3)同时,服务器将信息反馈给客户端,客户端接收信息并显示。
时间: 2024-05-10 14:16:58 浏览: 68
以下是基于流套接字的客户端/服务器通信程序的示例代码,使用Python语言实现:
服务器端程序(server.py):
```python
import socket
HOST = '127.0.0.1' # IP地址为本机地址
PORT = 1888 # 端口号为1888
# 创建TCP套接字
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 绑定地址和端口号
s.bind((HOST, PORT))
# 开始监听客户端连接请求
s.listen(1)
print('Waiting for client connection...')
# 等待客户端连接
conn, addr = s.accept()
print('Client connected:', addr)
while True:
# 接收客户端发送的数据
data = conn.recv(1024)
if not data:
break
print('Received message from client:', data.decode())
# 将数据发送回客户端
conn.sendall(data)
# 关闭套接字
conn.close()
s.close()
```
客户端程序(client.py):
```python
import socket
HOST = '127.0.0.1' # IP地址为本机地址
PORT = 1888 # 端口号为1888
# 创建TCP套接字
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 连接服务器
s.connect((HOST, PORT))
print('Connected to server:', (HOST, PORT))
while True:
# 输入要发送的消息
message = input('Input message to send: ')
if not message:
break
# 发送消息到服务器
s.sendall(message.encode())
# 接收服务器返回的消息
data = s.recv(1024)
print('Received message from server:', data.decode())
# 关闭套接字
s.close()
```
运行以上两个程序,客户端可以向服务器发送消息,并接收服务器返回的消息。