编写一个客户端和服务器端程序,客户端连接到服务器端后,请求一个文档,然后显示结果
时间: 2024-02-10 15:10:34 浏览: 22
好的,这是一个典型的客户端-服务器模型的应用程序,可以使用TCP协议来实现。下面是一个简单的Python代码示例:
服务器端程序:
```python
import socket
HOST = '127.0.0.1' # 服务器端IP地址
PORT = 8888 # 服务器端口号
# 创建一个socket对象
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 绑定IP地址和端口号
server_socket.bind((HOST, PORT))
# 监听客户端连接
server_socket.listen(1)
print('服务器已启动,等待客户端连接...')
while True:
# 接受客户端连接请求
client_socket, addr = server_socket.accept()
print('客户端已连接:', addr)
# 接收客户端请求的文档名称
doc_name = client_socket.recv(1024).decode()
try:
# 打开文档并读取内容
with open(doc_name, 'rb') as f:
content = f.read()
# 发送文档内容给客户端
client_socket.sendall(content)
print('文档已发送给客户端:', addr)
except FileNotFoundError:
# 发生错误时,发送错误信息给客户端
client_socket.sendall(b'File not found')
print('文档不存在:', doc_name)
finally:
# 关闭客户端连接
client_socket.close()
```
客户端程序:
```python
import socket
HOST = '127.0.0.1' # 服务器端IP地址
PORT = 8888 # 服务器端口号
# 创建一个socket对象
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 连接服务器
client_socket.connect((HOST, PORT))
# 请求文档名称
doc_name = input('请输入文档名称:')
# 发送请求给服务器
client_socket.sendall(doc_name.encode())
# 接收服务器返回的文档内容
data = client_socket.recv(1024)
if data == b'File not found':
print('文档不存在:', doc_name)
else:
# 打印文档内容
print(data.decode())
# 关闭客户端连接
client_socket.close()
```
这个程序假设文档都在服务器端的工作目录中,如果需要访问其他目录中的文档,需要在服务器端代码中进行修改。