具体功能是当客户端用户输入任何字符串都被服务器端输出并给客户端返回”收到“,当用户输入“over”则断开连接,结束通信。
时间: 2023-12-16 11:03:35 浏览: 40
好的,这是一个简单的客户端-服务器模型。你需要使用 socket 编程来实现这个功能。具体步骤如下:
1. 创建一个服务器程序,监听客户端的连接请求。
2. 当有客户端连接时,创建一个新的线程来处理该客户端的请求。
3. 在新线程中,接收客户端的信息并将其打印到服务器端。
4. 如果客户端发送的信息为 "over",则断开连接。
5. 否则,给客户端发送 "收到" 并等待下一条信息。
下面是一个简单的 Python 代码示例:
```python
import socket
import threading
def handle_client(conn, addr):
print(f"New client connected: {addr}")
while True:
data = conn.recv(1024).decode()
if not data:
break
print(f"Received from {addr}: {data}")
if data == "over":
break
conn.send("收到".encode())
print(f"Client {addr} disconnected")
conn.close()
def start_server():
host = "127.0.0.1"
port = 8000
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind((host, port))
server.listen(5)
print(f"Server listening on {host}:{port}")
while True:
conn, addr = server.accept()
threading.Thread(target=handle_client, args=(conn, addr)).start()
if __name__ == "__main__":
start_server()
```
在这个示例中,我们定义了一个 `handle_client` 函数来处理客户端请求,它接收两个参数:`conn` 和 `addr`,分别表示客户端的连接和地址。在函数中,我们通过一个 while 循环来接收客户端发送的信息,并根据信息内容执行相应的操作。如果客户端发送的信息为 "over",则跳出循环并断开连接;否则,给客户端发送 "收到" 并等待下一条信息。
我们还定义了一个 `start_server` 函数来启动服务器。在该函数中,我们首先定义了服务器的地址和端口号,并创建了一个 socket 对象来监听客户端的连接请求。然后,我们通过一个 while 循环来等待客户端连接,并在每个连接请求到来时创建一个新的线程来处理该客户端的请求。
最后,我们在主程序中调用 `start_server` 函数来启动服务器。