日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python socket多线程 获取朋友列表_python socket多线程通讯实例分析(聊天室)

發布時間:2023/12/3 python 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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多线程通讯实例分析(聊天室)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。