聊天室小程序服务端源码(客户端接下一条)
功能:类似qq群聊
1.进入聊天室需要输入用户名
2.有人进入聊天室有提示,其他人会收到提示
xxx进入聊天室
3.某人发消息,则其他人都能收到
xxx说:xxxx
4.有人退出聊天室其他人会收到提示
xxx退出聊天室
5.管理员功能,管理员喊话聊天室所有人都能收到
# -*- coding: utf-8 -*-from __future__ import unicode_literalsimport socketimport threadingsock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)sock.bind(('127.0.0.1', 8888))sock.listen(5)print('Server', socket.gethostbyname('127.0.0.1'), 'listening...')mydict = dict()mylist = list()def tellOthers(exceptnum, whattosay):for c in mylist:if c.fileno() != exceptnum:try:c.send(whattosay.encode())except:passdef subThreadIn(myconnection, connNumber):nickname = myconnection.recv(1024).decode()mydict[myconnection.fileno()] = nicknamemylist.append(myconnection)print('connection', connNumber, 'has nickname:', nickname)tellOthers(connNumber, '系统提示:' + mydict[connNumber].rstrip() + '进入聊天室\n')while True:try:recvedMsg = myconnection.recv(1024).decode()if recvedMsg:print(mydict[connNumber], ':', recvedMsg)tellOthers(connNumber, mydict[connNumber].rstrip() + ':' + recvedMsg)else:mylist.remove(myconnection)print(mydict[connNumber], 'exit,', len(mylist), 'person left')tellOthers(connNumber, '系统提示:' + mydict.pop(connNumber).rstrip() + '离开聊天室!\n剩余'+ str(len(mylist)) + '人在聊天室')myconnection.close()returnexcept (OSError, ConnectionResetError):passwhile True:connection, addr = sock.accept()print('Accept a new connection',connection.getsockname(), connection.fileno())try:buf = connection.recv(1024).decode()if buf == '1':a = '首次请输入昵称,才可以接收消息!!!\n'connection.send(a.encode())mythread = threading.Thread(target=subThreadIn, args=(connection, connection.fileno()))mythread.setDaemon(True)mythread.start()else:connection.send(b'please go out')connection.close()except:pass
聊天室小程序服务端源码(客户端接下一条)相关推荐
- java计算机毕业设计信用卡增值业务系统小程序用户端源码+mysql数据库+lw文档+系统+调试部署
java计算机毕业设计信用卡增值业务系统小程序用户端源码+mysql数据库+lw文档+系统+调试部署 java计算机毕业设计信用卡增值业务系统小程序用户端源码+mysql数据库+lw文档+系统+调试部 ...
- 计算机毕业设计Java课堂管理系统小程序用户端(源码+mysql数据库+系统+lw文档)
计算机毕业设计Java课堂管理系统小程序用户端(源码+mysql数据库+系统+lw文档) 计算机毕业设计Java课堂管理系统小程序用户端(源码+mysql数据库+系统+lw文档) 本源码技术栈: 项目 ...
- 计算机毕业设计Java信用卡增值业务系统小程序管理端(源码+系统+mysql数据库+lw文档
计算机毕业设计Java信用卡增值业务系统小程序管理端(源码+系统+mysql数据库+lw文档 计算机毕业设计Java信用卡增值业务系统小程序管理端(源码+系统+mysql数据库+lw文档) 本源码技术 ...
- 外卖扫码点餐系统源码 后台管理端+商家端+门店端+小程序用户端源码
外卖点餐 堂食点餐 扫码点餐 本套扫码点餐系统源码基于java语言开发,移动端原生小程序,SaaS模式.代码完整,带部署调试视频. 系统由总后台管理端+商家端+门店端+小程序用户端组成,支持扫码点单. ...
- GoEasy小程序即时通讯源码 v1.1.0基于GoEasy提供的websocket通讯服务
介绍: GoEasy小程序即时通讯源码是一个基于GoEasy提供的websocket通讯服务,实现的小程序即时通讯,支持一对一单聊.群聊.会话列表.上下线提醒.历史消息.离线消息,支持发送图片.视频. ...
- 五子棋服务端程序java_9网上五子棋对战(java)服务端源码
9网上五子棋对战(java)服务端源码 网上五子棋对战(java)服务端源码 /* 五子棋游戏是本人在学习java swing时写的一个程序,程序分两部分:服务器端和客户端.运行程序时先运行服务器端, ...
- 最新WordPress微信小程序社区论坛源码多端应用
WordPress多端应用 WordPress作为后端生成多端小程序.快应用及APP,可用于资讯.新闻.博客.企业官网等 后端 使用开源博客建站系统wordpress和微慕小程序开源版插件 前端使用u ...
- 多端合一小程序商城制作系统源码 后台自由DIY+全开源可二开
分享一个多端合一小程序商城制作系统源码,系统后台自由DIY,含完整前后端+部署教程,源码全开源可二开. 系统支持7个终端+一个后台,省去一个平台开发一个小程序的麻烦,支持微信小程序.支付宝小程序.百度 ...
- Live:主流技术构建即时聊天室演示应用,直播源码
Live :服务端采用 RTMP(Nginx), WebSocket(Socket.io),客户端 VideoCore+IJKPlayer 构建即时聊天室演示应用. 这个项目是为了演示如何建立一个现场 ...
最新文章
- codeforces1700数学:E2. Close Tuples (hard version)[组合计数 逆向统计] D. Circle Game[对称博弈考虑对称状态的胜负]
- python到底干嘛的-Python是干嘛的?可以做什么?老男孩Python培训班
- Linux调试——gdb调试器的简单使用调试coredump文件
- mysql 利用binlog增量备份,还原实例
- 同志亦凡人第五季/全集BQueer As Folk 5迅雷下载
- oracle severity,ORACLE10G如何清除OEM下的历史警告信息
- iPhone屏幕尺寸/launch尺寸/icon尺寸
- 99乘法表(java版)
- 怎么调出全局搜索_局部静态变量只能初始化一次?它是怎么实现的
- 11G新特性 -- Expression Statistics
- CAPL如何组装自定义报文
- LNode *和LinkList的小区分
- 春暖花开,放慢脚步,享受生活!
- 鸿蒙初开再往前是什么,鸿蒙初开造句,用鸿蒙写一句话
- zemax设置 像方远心_像方远心光学系统具有以下特征
- Asp.Net Ajax (2)---ScriptManager
- Win7 各种语言包下载
- 【纪中集训2019.3.30】星辰大海
- 精益生产25个必备工具!
- windows安装torch_sparse\torch_geometric\torch_cluster