多线程tpc聊天程序
时间: 2024-01-22 17:15:45 浏览: 75
多线程TCP聊天程序是一种可以实现多个客户端之间实时通信的程序。它使用TCP协议进行通信,并利用多线程技术来处理多个客户端的连接和消息传输。
以下是一个简单的多线程TCP聊天程序的示例代码:
```python
import socket
import threading
def handle_client(client_socket, address):
while True:
try:
# 接收客户端发送的消息
data = client_socket.recv(1024)
if not data:
break
# 处理接收到的消息
message = data.decode()
print(f"收到来自 {address} 的消息:{message}")
# 发送消息给客户端
response = f"已收到消息:{message}"
client_socket.send(response.encode())
except Exception as e:
print(f"与 {address} 的连接出现异常:{e}")
break
# 关闭客户端连接
client_socket.close()
print(f"与 {address} 的连接已关闭")
def start_server():
# 创建套接字
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 绑定IP地址和端口号
server_socket.bind(("localhost", 8888))
# 监听连接
server_socket.listen(5)
print("服务器已启动,等待客户端连接...")
while True:
# 接受客户端连接
client_socket, address = server_socket.accept()
print(f"与 {address} 建立了连接")
# 创建线程处理客户端连接
client_thread = threading.Thread(target=handle_client, args=(client_socket, address))
client_thread.start()
start_server()
```
这个程序使用了`socket`模块来创建套接字,并通过`bind`方法绑定了本地的IP地址和端口号。然后使用`listen`方法开始监听连接。
在`handle_client`函数中,通过循环接收客户端发送的消息,并处理接收到的消息。然后将处理结果发送给客户端。如果出现异常或客户端断开连接,就关闭客户端连接。
`start_server`函数用于启动服务器,它不断接受客户端连接,并为每个连接创建一个新的线程来处理。
阅读全文