python socket多线程 获取朋友列表_python socket多线程通讯实例分析(聊天室)
本文实例讲述了python socket多线程通讯方法。分享给大家供大家参考,具体如下:
#!/usr/bin/evn python
"""
这是一个Socket+多进程的例子(聊天服务端)
"""
import socket
import threading
# 处理中文数据用的
encoding = "GBK"
def HKServer(client, addr):
"""
与客户端时实通讯函数
加入encoding是为了处理输入中文数据
client 客户socket
addr 客户address
"""
# 通知已有的每个客户,有新的成员加入
for c in clients: c.send(bytes("[%s]加入\r\n" % addr[1], encoding))
# 接受客户端数据
say = b""
while True:
data = client.recv(1024)
if not data: break
# 如果不是回车键
if data != b'\r\n':
say += data #.encode(encoding)
continue
# 把客户端发来的内容发给所有的客户端
for c in clients:
c.send(bytes("[%s]:%s\r\n" % (addr[1], say.decode(encoding)), encoding))
# 内容归\x0
say = b""
# 客户离开后,从客户列表中移队当前客户,关闭socket连接
clients.remove(client)
client.close()
# 通知已有的每个客户,有成员离开
for c in clients: c.send(bytes("[%s]离开\r\n" % addr[1], encoding))
# 客户端列表
clients = []
# 设置IP地址与端口
HOST = ''
PORT = 9999
# 初始化socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 绑定IP地址与端口
s.bind((HOST, PORT))
# 开始监听
s.listen(1)
# 循环等待
while True:
# 接受客户
client, addr = s.accept()
# 启动新的进程与客户通信
thread = threading.Thread(target=HKServer, args=(client, addr))
thread.start()
# 记录新的客户
clients.append(client)
希望本文所述对大家Python程序设计有所帮助。
python socket多线程 获取朋友列表_python socket多线程通讯实例分析(聊天室)相关推荐
- python socket多线程 获取朋友列表_python中的(多线程)套接字列表/数组
我对python有点陌生.我正在尝试在一个程序中创建和使用一个套接字列表/数组.所以我声明了一个数组,如下所示:myCSocks = ['CSock1', 'CSock2', 'CSock3', 'C ...
- python爬取微博图片教程_Python爬取微博实例分析
引言 利用Ajax分析微博并爬取其内容如微博内容,点赞数,转发数,评论数等. 分析 打开陈一发微博网站:https://m.weibo.cn/p/1005051054009064,并同时打开开发者工具 ...
- python中zip()函数的用法_Python zip()函数用法实例分析
本文实例讲述了python zip()函数用法.分享给大家供大家参考,具体如下: 这里介绍python中zip()函数的使用: >>> help(zip) Help on built ...
- [转载] python 运算符重载有什么用_Python运算符重载用法实例分析
参考链接: Python运算符重载 本文实例讲述了Python运算符重载用法.分享给大家供大家参考.具体如下: 在Python语言中提供了类似于C++的运算符重在功能: 一下为Python运算符重在调 ...
- Python实现主成分分析(PCA)降维:原理及实例分析
转载文章:Python实现主成分分析(PCA)降维:原理及实例分析 简介 降维是由一些问题带来的: 可以缓解由维度诅咒(高维)带来的问题: 可以用来压缩数据,将损失数据最小化: 可以将高维数据降到低维 ...
- python客户端和服务端区别_Python socket 客户端和服务器端
connection, address = socket.accept() 调 用accept方法时,socket会时入"waiting"状态.客户请求连接时,方法建立连接并返回服 ...
- python回声程序echo 一行代码_Python Socket 编程示例 Echo Server
简评:我们已经从「Python Socket 编程概览」了解了 socket API 的概述以及客户端和服务器的通信方式,接下来让我们创建第一个客户端和服务器,我们将从一个简单的实现开始,服务器将简单 ...
- python socket通信 多进程_python实现多进程通信实例分析
操作系统会为每一个创建的进程分配一个独立的地址空间,不同进程的地址空间是完全隔离的,因此如果不加其他的措施,他们完全感觉不到彼此的存在.那么进程之间怎么进行通信?他们之间的关联是怎样的?实现原理是什么 ...
- python多线程读取数据库数据_Python基于多线程操作数据库相关知识点详解
Python基于多线程操作数据库相关问题分析 本文实例分析了Python多线程操作数据库相关问题.分享给大家供大家参考,具体如下: python多线程并发操作数据库,会存在链接数据库超时.数据库连接丢 ...
最新文章
- 信息管理系统(Servlet+jsp+mvc+jdbc)
- php mysql筛选查询,php-Vicidial的MySQL筛选器
- oracle数据库安装HotSpot,安装Oracle数据库软件遭遇诡异的HotSpot Virtual Machine Error : 11报错...
- uniapph5授权成功后返回上一页_记一次授权系统的安全测试
- oracle 查看监听命令_linux下使用Oracle常用命令
- 离婚率逐年上升,数据分析告诉你背后的主因竟然是它!
- 《redis-php中文参考手册》-php版
- 财经法规与会计职业道德3
- 详解MySQL事务隔离
- 视频教程-java项目实战之欢乐斗地主游戏开发教程 毕业项目课程设计带源码-Java
- 安装chrome Jsonview插件
- 校园网自动登录Python版
- 获取微信小程序具体链接
- 全球货币市场基础知识系列4
- 2022 开源之夏 | Serverless Devs 陪你“变得更强”
- 计算机知识太多了记不住,内容太多记不住?教你提高记忆力
- iOS 音乐 锁屏显示 控制
- 【杂谈】什么文章可以给有三AI投稿?你能得到什么
- Java AQS的实现原理(大部分同步类都依赖AQS实现)
- 颜色转换公式大全及转换表格(31种)