本文实例讲述了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多线程通讯实例分析(聊天室)相关推荐

  1. python socket多线程 获取朋友列表_python中的(多线程)套接字列表/数组

    我对python有点陌生.我正在尝试在一个程序中创建和使用一个套接字列表/数组.所以我声明了一个数组,如下所示:myCSocks = ['CSock1', 'CSock2', 'CSock3', 'C ...

  2. python爬取微博图片教程_Python爬取微博实例分析

    引言 利用Ajax分析微博并爬取其内容如微博内容,点赞数,转发数,评论数等. 分析 打开陈一发微博网站:https://m.weibo.cn/p/1005051054009064,并同时打开开发者工具 ...

  3. python中zip()函数的用法_Python zip()函数用法实例分析

    本文实例讲述了python zip()函数用法.分享给大家供大家参考,具体如下: 这里介绍python中zip()函数的使用: >>> help(zip) Help on built ...

  4. [转载] python 运算符重载有什么用_Python运算符重载用法实例分析

    参考链接: Python运算符重载 本文实例讲述了Python运算符重载用法.分享给大家供大家参考.具体如下: 在Python语言中提供了类似于C++的运算符重在功能: 一下为Python运算符重在调 ...

  5. Python实现主成分分析(PCA)降维:原理及实例分析

    转载文章:Python实现主成分分析(PCA)降维:原理及实例分析 简介 降维是由一些问题带来的: 可以缓解由维度诅咒(高维)带来的问题: 可以用来压缩数据,将损失数据最小化: 可以将高维数据降到低维 ...

  6. python客户端和服务端区别_Python socket 客户端和服务器端

    connection, address = socket.accept() 调 用accept方法时,socket会时入"waiting"状态.客户请求连接时,方法建立连接并返回服 ...

  7. python回声程序echo 一行代码_Python Socket 编程示例 Echo Server

    简评:我们已经从「Python Socket 编程概览」了解了 socket API 的概述以及客户端和服务器的通信方式,接下来让我们创建第一个客户端和服务器,我们将从一个简单的实现开始,服务器将简单 ...

  8. python socket通信 多进程_python实现多进程通信实例分析

    操作系统会为每一个创建的进程分配一个独立的地址空间,不同进程的地址空间是完全隔离的,因此如果不加其他的措施,他们完全感觉不到彼此的存在.那么进程之间怎么进行通信?他们之间的关联是怎样的?实现原理是什么 ...

  9. python多线程读取数据库数据_Python基于多线程操作数据库相关知识点详解

    Python基于多线程操作数据库相关问题分析 本文实例分析了Python多线程操作数据库相关问题.分享给大家供大家参考,具体如下: python多线程并发操作数据库,会存在链接数据库超时.数据库连接丢 ...

最新文章

  1. 信息管理系统(Servlet+jsp+mvc+jdbc)
  2. php mysql筛选查询,php-Vicidial的MySQL筛选器
  3. oracle数据库安装HotSpot,安装Oracle数据库软件遭遇诡异的HotSpot Virtual Machine Error : 11报错...
  4. uniapph5授权成功后返回上一页_记一次授权系统的安全测试
  5. oracle 查看监听命令_linux下使用Oracle常用命令
  6. 离婚率逐年上升,数据分析告诉你背后的主因竟然是它!
  7. 《redis-php中文参考手册》-php版
  8. 财经法规与会计职业道德3
  9. 详解MySQL事务隔离
  10. 视频教程-java项目实战之欢乐斗地主游戏开发教程 毕业项目课程设计带源码-Java
  11. 安装chrome Jsonview插件
  12. 校园网自动登录Python版
  13. 获取微信小程序具体链接
  14. 全球货币市场基础知识系列4
  15. 2022 开源之夏 | Serverless Devs 陪你“变得更强”
  16. 计算机知识太多了记不住,内容太多记不住?教你提高记忆力
  17. iOS 音乐 锁屏显示 控制
  18. 【杂谈】什么文章可以给有三AI投稿?你能得到什么
  19. Java AQS的实现原理(大部分同步类都依赖AQS实现)
  20. 颜色转换公式大全及转换表格(31种)

热门文章

  1. 在Java中键入Safe SQL
  2. 前9个免费的Java流程监视工具以及如何选择一种
  3. Java 9示例–收集的工厂方法–创建不可修改的列表,集合和映射
  4. 使用JDK 8轻松进行细粒度排序
  5. java java编码_Java编码约定被认为是有害的
  6. JUnit规则–引发异常时执行附加验证
  7. flink 复杂事件_复杂的(事件)世界
  8. MySQL JDBC驱动程序如何处理准备好的语句
  9. spring mvc 教程_Spring MVC开发–快速教程
  10. Web应用程序的简单插件系统