Python实现网络多人聊天室
作者: / 2019-08-07 / 浏览次数:

凯发k8国际下载server.py

# server.py
# 导入系统模块
import os, sys
# 导入网络编程模块
from socket import *
# io多路复用模块
from select import select
# 设置模块
from settings import *
# 语言模块
from language import *
def main:
 'main 主函数'
 server = socket # 建立tcp套接字
 server.setsockopt # 设置端口可立即重用
 server.bind # 绑定地址
 server.listen # 监听
 # 接收函数
 accept
def accept:
 'accept 服务器接受函数'
 # 使用select模块的select方法实现io多路复用监听传输
 rlist = [server, sys.stdin]
 wlist = []
 xlist = []
 while true:
 rs, ws, xs = select
 for r in rs:
 if r is server:
 # 服务器接受客户端连接
 conn, addr = server.accept
 # 调用validate函数检查用户名
 if validate:
 # 将客户端套接字添加到rlist中以监听
 rlist.append
 # 如果用户名注册成功
 print
 else:
 conn.close
 elif r is sys.stdin:
 # 服务器向所有客户端发送系统消息
 data = sys.stdin.readline
 if data == '
':
 # 如果服务器输入回车,则退出
 for c in rlist[2:]:
 c.send
 c.close
 server.close
 print
 o_____it
 else:
 # 如果服务器输入正常语句,通知所有客户端
 data = administrator + ': ' + data
 for c in rlist[2:]:
 c.send)
 else:
 # 服务器接受客户端的消息并转发给所有客户端
 data = r.recv
 if not data:
 # 关闭客户端
 r.close
 rlist.remove
 else:
 # 转发信息给其他客户端
 print, end='')
 for c in rlist[2:]:
 if c is not r:
 c.send
def validate:
 '检验用户名 validate username'
 name = client.recv.decode
 # print)
 # print
 if name in users:
 client.send
 return false
 else:
 users.append
 client.send
 return true
【某某业务】网站建设、网站设计、服务器空间租售、网站维护、网站托管、网站优化、百度推广、自媒体营销、微信公众号
如有意向---联系我们
热门栏目
热门资讯

网站建设 网站托管 成功案例 新闻动态 关于我们 联系我们 服务器空间 加盟合作 网站优化

备案号: 

公司地址:江苏省南京市玄武区玄武湖 咨询QQ:9490489 手机: 电话: