代码实现,一台电脑充当服务器,其他电脑充当客户端,客户端可以持续发送请求给服务器,服务器可以持续接收客户端的请求
时间: 2024-09-26 10:16:51 浏览: 45
ChatApp:可以充当通过WebSockets实现的客户端和服务器的聊天应用程序
要实现这样的功能,你可以使用Python的socket编程。下面是一个简单例子,展示了一台电脑如何作为服务器,另一台电脑则作为客户端通过网络通信:
**服务器端(server.py):**
```python
import socket
import threading
# 创建一个socket对象
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 设置服务器地址和端口号
host = ''
port = 12345
# 绑定并监听
server_socket.bind((host, port))
server_socket.listen(1)
while True:
# 等待客户端连接
client_socket, addr = server_socket.accept()
# 客户端请求处理线程
client_thread = threading.Thread(target=handle_client_request, args=(client_socket,))
client_thread.start()
def handle_client_request(client_socket):
while True:
request_data = client_socket.recv(1024) # 接收客户端的数据
if not request_data:
break # 如果接收到空数据,关闭连接
# 对请求做相应处理,这里只是一个简单示例
response_data = f"Received your request: {request_data.decode()}"
client_socket.sendall(response_data.encode()) # 发送响应
client_socket.close()
```
**客户端(client.py):**
```python
import socket
# 连接到服务器
target_host = '192.168.1.1' # 服务器IP地址替换为你实际的
target_port = 12345
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect((target_host, target_port))
while True:
user_input = input("Enter a message to send to the server: ")
sock.sendall(user_input.encode())
# 接收服务器响应
received_data = sock.recv(1024).decode()
print(f"Server replied: {received_data}")
# 按下回车继续,Ctrl+C退出循环
if not received_data:
break
sock.close()
```
在这个例子中,客户端不断输入消息发送给服务器,服务器接收到后会回应。每个客户端都会独立开启一个新的线程来处理其请求,保持服务的并发能力。
阅读全文