编写一个python服务器程序。该程序在9999端口上监听,当建立连接后,每隔10s读取iris.txt文件,将三行记录发送到连接上
时间: 2023-06-17 20:09:09 浏览: 61
以下是一个简单的 Python 服务器程序,可以实现你所述的功能:
```python
import socket
import time
HOST = '' # 监听所有可用的网络接口
PORT = 9999 # 监听的端口号
# 创建TCP socket对象
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
# 绑定socket到指定的地址和端口
s.bind((HOST, PORT))
# 开始监听连接
s.listen()
print(f"Server listening on port {PORT}...")
while True:
# 等待客户端连接
conn, addr = s.accept()
print(f"Connected by {addr}")
# 每隔10秒读取iris.txt文件,并发送前三行记录到客户端
with open('iris.txt') as f:
while True:
data = f.readline()
if not data:
# 文件读取完毕,重新定位到文件开头
f.seek(0)
continue
# 发送前三行记录到客户端
conn.sendall(data.encode())
conn.sendall(f.readline().encode())
conn.sendall(f.readline().encode())
# 暂停10秒
time.sleep(10)
```
当客户端连接到服务器后,服务器会每隔10秒读取 `iris.txt` 文件,并将前三行记录发送给客户端。客户端可以通过以下方式连接服务器:
```python
import socket
HOST = 'localhost' # 服务器的主机名或IP地址
PORT = 9999 # 服务器监听的端口号
# 创建TCP socket对象
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
# 连接服务器
s.connect((HOST, PORT))
while True:
# 接收服务器发送的数据
data = s.recv(1024)
if not data:
break
print(data.decode())
```
该客户端程序会不断接收服务器发送的数据,并将其显示在控制台上。