Python基于Socket实现简单聊天室

本文介绍了如何使用Python的Socket库创建一个简单的聊天室。分别阐述了服务端和客户端的实现过程,允许多个客户端连接并进行实时通信。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Python基于Socket实现简单聊天室

服务端

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2017/7/27 15:34
# @File    : Server.py

"""
聊天室服务端
"""

import socket,select

host=''
port=7799
addr=(host,port)

inputs=[]
members={}

#配置服务端
def start_Server():
    server=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    server.bind(addr)
    server.listen(5)
    return server


#返回聊天室成员列表
以下是一个基于Python socket实现简单聊天室示例代码: server.py: ```python import socket import threading # 客户端列表 clients = [] def broadcast(msg): # 向所有客户端广播消息 for client in clients: client.send(msg) def handle_client(client): try: while True: # 接收客户端消息 msg = client.recv(1024) if not msg: break # 广播消息 broadcast(msg) except: # 客户端异常断开连接 clients.remove(client) client.close() def start_server(): # 创建socket server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 绑定IP端口 server_socket.bind(('127.0.0.1', 8888)) # 开始监听 server_socket.listen(5) print('server start...') while True: # 接受客户端连接 client_socket, client_address = server_socket.accept() print(f'{client_address} connected.') # 添加客户端 clients.append(client_socket) # 处理客户端消息 threading.Thread(target=handle_client, args=(client_socket,)).start() if __name__ == '__main__': start_server() ``` client.py: ```python import socket import threading def receive(sock): while True: # 接收服务器消息 msg = sock.recv(1024).decode('utf-8') print(msg) def send(sock): while True: # 发送消息到服务器 msg = input() sock.send(msg.encode('utf-8')) def start_client(): # 创建socket client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 连接服务器 client_socket.connect(('127.0.0.1', 8888)) # 接收欢迎消息 print(client_socket.recv(1024).decode('utf-8')) # 启动接收消息线程 threading.Thread(target=receive, args=(client_socket,)).start() # 启动发送消息线程 threading.Thread(target=send, args=(client_socket,)).start() if __name__ == '__main__': start_client() ``` 使用方法: 1.运行server.py启动服务器; 2.运行多个client.py启动客户端; 3.客户端可以输入任意消息,所有客户端都会收到该消息。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值