内容:编写一个tcp服务端程序server,和tcp客户端程序client。client 程序将所有参数依次发给服务器, 服务器将收到的信息打印到终端。
时间: 2024-12-10 12:45:41 浏览: 14
要编写一个简单的TCP服务器和客户端程序,我们首先需要了解TCP的基本原理,即它是一种可靠的、基于连接的通信协议。以下是使用Python语言的一个简单示例:
### 服务器(server.py)
```python
import socket
def start_server():
# 创建一个socket对象
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 获取本地主机名和默认的端口
host = 'localhost'
port = 9090
try:
# 绑定端口并监听连接请求
server_socket.bind((host, port))
server_socket.listen(1) # 最大同时接受一个连接
print(f"Server is running on {host}:{port}")
while True:
# 接受客户端连接
client_connection, client_address = server_socket.accept()
# 收取客户端发送的所有数据,直到接收到空行结束
request_data = b''
while True:
data = client_connection.recv(1024)
if not data or data.decode() == '\n':
break
request_data += data
# 打印接收的数据
print(f"Received from {client_address}: {request_data.decode()}")
# 关闭客户端连接
client_connection.close()
except Exception as e:
print(f"Error occurred: {str(e)}")
finally:
# 关闭服务器套接字
server_socket.close()
if __name__ == "__main__":
start_server()
```
### 客户端(client.py)
```python
import socket
def send_to_server(message):
# 创建一个socket对象
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 连接到服务器
host = 'localhost'
port = 9090
client_socket.connect((host, port))
# 发送消息到服务器
client_socket.sendall(message.encode())
print(f"Sent message: {message} to {host}:{port}")
# 接收服务器响应并关闭连接
response = client_socket.recv(1024).decode()
print(f"Response received: {response}")
client_socket.close()
if __name__ == "__main__":
message = input("Enter your message: ")
send_to_server(message)
```
**如何运行:**
1. 在命令行分别运行`python server.py`启动服务器。
2. 启动另一个命令行窗口,运行`python client.py`,然后输入消息并按回车。
阅读全文