编写一个客户端和服务器端程序,客户端连接到服务器端后,请求一个文档,然后显示结果
时间: 2024-02-11 11:04:24 浏览: 63
好的,这是一个典型的客户端/服务器模型。我们可以使用Python的socket库来实现这个程序。首先,我们需要编写服务器端程序。代码如下:
```python
import socket
HOST = '127.0.0.1' # 服务器IP地址
PORT = 8000 # 端口号
# 创建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(f'客户端已连接:{addr}')
# 接受客户端发送的请求
request = client_socket.recv(1024).decode('utf-8')
print(f'客户端请求:{request}')
# 打开并读取文件内容
with open(request, 'r') as f:
content = f.read()
# 发送文件内容到客户端
client_socket.sendall(content.encode('utf-8'))
# 关闭socket连接
client_socket.close()
```
在这个程序中,我们首先创建一个socket对象,然后绑定IP地址和端口号,并开始监听请求。当有客户端连接时,我们接受客户端请求,读取请求文件的内容,并将其发送回客户端。最后,我们关闭socket连接。
接下来,我们编写客户端程序。代码如下:
```python
import socket
HOST = '127.0.0.1' # 服务器IP地址
PORT = 8000 # 端口号
# 创建socket对象
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 连接服务器
client_socket.connect((HOST, PORT))
# 请求文件名称
request = 'test.txt'
# 发送请求到服务器
client_socket.sendall(request.encode('utf-8'))
# 接受服务器响应
response = client_socket.recv(1024).decode('utf-8')
# 显示响应结果
print(response)
# 关闭socket连接
client_socket.close()
```
在这个程序中,我们首先创建一个socket对象,并连接到服务器。然后,我们发送请求文件的名称到服务器,并等待服务器发送响应。最后,我们显示响应结果,并关闭socket连接。
将这两个程序保存到两个不同的文件中,然后在命令行中分别执行它们。如果一切正常,你应该能够看到客户端接收到了服务器发送的文件内容。
阅读全文