python多线程聊天两人
时间: 2023-06-21 17:11:41 浏览: 81
以下是一个简单的 Python 多线程聊天程序,可以让两个人进行聊天:
```python
import socket
import threading
# 定义主机和端口
HOST = 'localhost'
PORT = 8888
def handle_client(conn, addr):
# 接收客户端消息
while True:
data = conn.recv(1024)
if not data:
break
print('[客户端 {}] {}'.format(addr, data.decode('utf-8')))
# 发送消息给客户端
message = input('请输入消息:')
conn.sendall(message.encode('utf-8'))
# 关闭连接
conn.close()
def main():
# 创建套接字
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.bind((HOST, PORT))
sock.listen(1)
print('等待连接...')
while True:
conn, addr = sock.accept()
print('连接已建立:{}'.format(addr))
# 创建线程处理客户端连接
client_thread = threading.Thread(target=handle_client, args=(conn, addr))
client_thread.start()
if __name__ == '__main__':
main()
```
在该程序中,我们首先创建了一个 `handle_client` 函数,用于处理客户端连接。该函数会一直循环接收客户端的消息,然后打印出来,并等待用户输入消息后将其发送给客户端,直到客户端关闭连接为止。
然后,在 `main` 函数中,我们创建了一个套接字并监听连接。当有客户端连接时,我们创建一个新的线程来处理该客户端连接,并调用 `handle_client` 函数。这样就可以同时处理多个客户端连接了。
你可以在两个不同的终端窗口中分别运行该程序,并输入消息进行测试。
阅读全文