以下是一个简单的 Python 聊天程序的代码,它使用了 socket 和 threading 模块:

import socket
import threading

# 服务器的 IP 和端口
HOST = '127.0.0.1'
PORT = 8000

# 创建 socket 对象
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind((HOST, PORT))
server_socket.listen()

# 存储所有客户端的连接对象
clients = []

# 处理客户端消息的函数
def handle_client(client_socket, client_address):
    print(f'New connection from {client_address}')
    clients.append(client_socket)

    while True:
        # 接收客户端发送的消息
        message = client_socket.recv(1024).decode('utf-8')

        if message:
            print(f'{client_address}: {message}')

            # 将消息发送给所有客户端
            for client in clients:
                if client != client_socket:
                    client.send(f'{client_address}: {message}'.encode('utf-8'))
        else:
            # 客户端断开连接时,从列表中移除连接对象
            clients.remove(client_socket)
            client_socket.close()
            print(f'{client_address} disconnected')
            break

# 监听客户端连接的函数
def listen_for_clients():
    while True:
        # 等待客户端连接
        client_socket, client_address = server_socket.accept()

        # 创建一个新的线程来处理客户端消息
        client_thread = threading.Thread(target=handle_client, args=(client_socket, client_address))
        client_thread.start()

# 启动服务器
print(f'Server listening on {HOST}:{PORT}')
listen_for_clients()

运行该程序后,可以使用 telnet 工具连接到服务器进行测试:

$ telnet 127.0.0.1 8000
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Hello, world!

在另一个终端窗口中,可以再次使用 telnet 连接到服务器,这样就可以在两个客户端之间进行聊天了

如何用python写聊天程序?请给出代。

原文地址: https://www.cveoy.top/t/topic/evls 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录