计算机网络聊天程序的设计与实现
时间: 2023-12-29 21:05:36 浏览: 78
计算机网络聊天程序的设计与实现可以使用面向连接的编程技术和多线程来实现。以下是一个简单的示例:
1. 服务器端代码:
```python
import socket
import threading
def handle_client(client_socket, address):
while True:
data = client_socket.recv(1024).decode()
if not data:
break
print(f"Received message from {address}: {data}")
# 在这里可以添加处理消息的逻辑
response = "Server received your message"
client_socket.send(response.encode())
client_socket.close()
def start_server():
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(('localhost', 8888))
server_socket.listen(5)
print("Server started, waiting for connections...")
while True:
client_socket, address = server_socket.accept()
print(f"Connected with {address}")
client_thread = threading.Thread(target=handle_client, args=(client_socket, address))
client_thread.start()
start_server()
```
2. 客户端代码:
```python
import socket
def start_client():
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect(('localhost', 8888))
while True:
message = input("Enter your message: ")
client_socket.send(message.encode())
response = client_socket.recv(1024).decode()
print("Server response:", response)
start_client()
```
这个示例中,服务器端使用`socket`模块创建一个TCP套接字,并绑定到本地主机的8888端口。然后通过`listen`方法开始监听连接请求。当有客户端连接时,服务器端会创建一个新的线程来处理该客户端的消息。在`handle_client`函数中,服务器端接收客户端发送的消息,并可以添加相应的逻辑进行处理。然后服务器端会发送一个响应给客户端。
客户端使用`socket`模块创建一个TCP套接字,并通过`connect`方法连接到服务器端的地址和端口。然后客户端可以输入消息,并通过`send`方法发送给服务器端。客户端会等待服务器端的响应,并将响应打印出来。
这样,服务器端和客户端就可以通过网络进行通信,实现简单的聊天功能。