最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

pythonsocket多线程通讯实例分析(聊天室)

来源:动视网 责编:小采 时间:2020-11-27 14:35:43
文档

pythonsocket多线程通讯实例分析(聊天室)

pythonsocket多线程通讯实例分析(聊天室):本文实例讲述了python socket多线程通讯方法。分享给大家供大家参考,具体如下: #!/usr/bin/evn python 这是一个Socket+多进程的例子(聊天服务端) import socket import threading # 处理中文数据用的 encoding =
推荐度:
导读pythonsocket多线程通讯实例分析(聊天室):本文实例讲述了python socket多线程通讯方法。分享给大家供大家参考,具体如下: #!/usr/bin/evn python 这是一个Socket+多进程的例子(聊天服务端) import socket import threading # 处理中文数据用的 encoding =


本文实例讲述了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]加入
" % addr[1], encoding))
 # 接受客户端数据
 say = b""
 while True:
 data = client.recv(1024)
 if not data: break
 # 如果不是回车键
 if data != b'
':
 say += data #.encode(encoding)
 continue
 # 把客户端发来的内容发给所有的客户端
 for c in clients:
 c.send(bytes("[%s]:%s
" % (addr[1], say.decode(encoding)), encoding))
 # 内容归x0
 say = b""
 # 客户离开后,从客户列表中移队当前客户,关闭socket连接
 clients.remove(client)
 client.close()
 # 通知已有的每个客户,有成员离开
 for c in clients: c.send(bytes("[%s]离开
" % 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程序设计有所帮助。

文档

pythonsocket多线程通讯实例分析(聊天室)

pythonsocket多线程通讯实例分析(聊天室):本文实例讲述了python socket多线程通讯方法。分享给大家供大家参考,具体如下: #!/usr/bin/evn python 这是一个Socket+多进程的例子(聊天服务端) import socket import threading # 处理中文数据用的 encoding =
推荐度:
标签: 聊天 聊天室 通信
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top