编写一对一服务器客户端的应用程序,客户端使用TCP/UDP向服务器端发送请求日期和时间,服务器端在收到请求后,回答请求并显示出客户的地址
时间: 2024-02-17 14:01:20 浏览: 56
基于UDP的客户端与服务器之间的通信
好的,这是一个经典的网络编程问题,下面是一个简单的Python实现:
服务器端:
```python
import socket
import datetime
# 创建TCP socket对象
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 绑定服务器IP和端口
server_socket.bind(('127.0.0.1', 8000))
# 监听连接请求
server_socket.listen(1)
print('服务器启动,等待客户端连接...')
while True:
# 接受客户端连接
client_socket, client_address = server_socket.accept()
print(f'客户端 {client_address} 连接成功!')
# 接收客户端请求
data = client_socket.recv(1024).decode()
print(f'客户端 {client_address} 请求日期时间:{data}')
# 处理请求
now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
response = f'当前时间为:{now},客户端地址为:{client_address}'
# 发送响应
client_socket.send(response.encode())
# 关闭连接
client_socket.close()
```
客户端:
```python
import socket
# 创建TCP socket对象
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 连接服务器
client_socket.connect(('127.0.0.1', 8000))
# 发送请求
request = '请求日期时间'
client_socket.send(request.encode())
# 接收响应
response = client_socket.recv(1024).decode()
print(f'服务器响应:{response}')
# 关闭连接
client_socket.close()
```
当客户端运行时,它会连接到服务器并发送请求。服务器接收请求后,会返回当前日期时间和客户端地址。注意,这里使用的是TCP协议,如果要使用UDP协议,需要将socket类型改为SOCK_DGRAM,并且不需要建立连接。
阅读全文