以下是一个使用 Python 实现时钟同步服务器和客户端的示例代码,同步周期为 5 秒一次:
服务器端代码(server.py
):
python
import time
import socket
def server():
# 创建套接字
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 绑定地址和端口
server_address = ('127.0.0.1', 5000)
server_socket.bind(server_address)
# 监听连接
server_socket.listen(1)
print("Server is listening...")
while True:
# 等待客户端连接
client_socket, client_address = server_socket.accept()
print(f"Connected by {client_address}")
# 获取当前时间并发送给客户端
current_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
client_socket.send(current_time.encode())
# 关闭与客户端的连接
client_socket.close()
# 等待 5 秒
time.sleep(5)
if __name__ == "__main__":
server()
客户端代码(client.py
):
python
import time
import socket
def client():
# 创建套接字
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 连接服务器
server_address = ('127.0.0.1', 5000)
client_socket.connect(server_address)
while True:
# 接收服务器发送的时间
received_time = client_socket.recv(1024).decode()
print(f"Received time from server: {received_time}")
# 等待 5 秒
time.sleep(5)
if __name__ == "__main__":
client()
在上述代码中,服务器端每隔 5 秒接受一个客户端连接,并将当前时间发送给客户端。客户端每隔 5 秒接收服务器发送的时间。