当前第2页 返回上一页
为了能够让多个客户端同时接入服务并进行通信,服务端将使用SocketServer模块来实现,这样的话用户不用在子线程结束后,利用父进程对它进行处理,也不用关心socket的关闭,一切都由SocketServer来完成。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | from socketserver import BaseRequestHandler,ThreadingTCPServer
import threading
BUF_SIZE = 1024
class Handler(BaseRequestHandler):
def handle( self ):
address,pid = self .client_address
print ( '%s connected!' % address)
while True :
data = self .request.recv(BUF_SIZE)
if len (data)> 0 :
print ( 'receive=' ,data.decode( 'utf-8' ))
cur_thread = threading.current_thread()
self .request.sendall( 'response' .encode( 'utf-8' ))
print ( 'send:' , 'response' )
else :
print ( 'close' )
break
if __name__ = = '__main__' :
HOST = '192.168.1.6'
PORT = 8998
ADDR = (HOST,PORT)
server = ThreadingTCPServer(ADDR,Handler)
print ( 'listening' )
server.serve_forever()
print (server)
|
以下测试中我使用另外一台主机和本机的两个中断去连接服务器,都可以正常连接并且能进行数据应答交互

注意:此程序示例运行平台为rhel7.2.x86_64,python版本为3.6.2,对于windows平台和非同一python版本的用户可能缺乏一定的兼容性,如果是其他平台用户请自行修正!!
以上就是python多线程socket编程中将多客户端接入的方法的详细内容,更多文章请关注木庄网络博客!!
返回前面的内容
相关阅读 >>
Python在groupby分组后提取指定位置记录方法
Python整数怎么表示
Python爬虫能够干什么
Python使用协程与并发有什么用?
mac怎么安装Python
Python中列表的用法是什么
Python有switch语句吗
怎么用cmd运行Python
Python中集合可变吗
Python如何判断一个字符串是否包含指定子字符串
更多相关阅读请进入《Python》频道 >>
人民邮电出版社
python入门书籍,非常畅销,超高好评,python官方公认好书。
转载请注明出处:木庄网络博客 » python多线程socket编程中将多客户端接入的方法