国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python多線程socket編程之多客戶端接入

2020-01-04 16:44:10
字體:
來源:轉載
供稿:網友

Python中實現socket通信的服務端比較復雜,而客戶端非常簡單,所以客戶端基本上都是用sockct模塊實現,而服務
端用有很多模塊可以使用,如下:

python,多線程,socket

1、客戶端

#!/usr/bin/env python#coding:utf-8'''file:client.pydate:9/9/17 3:43 PMauthor:lockeyemail:lockey@123.comdesc:socket編程客戶端,python3.6.2'''import socket,sysHOST = '192.168.1.6'PORT = 8998ADDR =(HOST,PORT)BUFSIZE = 1024sock = socket.socket()try: sock.connect(ADDR) print('have connected with server') while True:  data = input('lockey# ')  if len(data)>0:  print('send:',data)  sock.sendall(data.encode('utf-8')) #不要用send()  recv_data = sock.recv(BUFSIZE)  print('receive:',recv_data.decode('utf-8'))  else:  sock.close()  breakexcept Exception: print('error') sock.close() sys.exit()


2、SocketServer模塊

為了能夠讓多個客戶端同時接入服務并進行通信,服務端將使用SocketServer模塊來實現,這樣的話用戶不用在子線程結束后,利用父進程對它進行處理,也不用關心socket的關閉,一切都由SocketServer來完成。

#!/usr/bin/env python#coding:utf-8'''file:client.pydate:9/9/17 3:43 PMauthor:lockeyemail:lockey@123.comdesc:socket編程服務器端,python3.6.2'''from socketserver import BaseRequestHandler,ThreadingTCPServerimport threadingBUF_SIZE=1024class 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()    #response = '{}:{}'.format(cur_thread.ident,data)    self.request.sendall('response'.encode('utf-8'))    print('send:','response')   else:    print('close')    breakif __name__ == '__main__': HOST = '192.168.1.6' PORT = 8998 ADDR = (HOST,PORT) server = ThreadingTCPServer(ADDR,Handler) #參數為監聽地址和已建立連接的處理類 print('listening') server.serve_forever() #監聽,建立好TCP連接后,為該連接創建新的socket和線程,并由處理類中的handle方法處理 print(server)

以下測試中我使用另外一臺主機和本機的兩個中斷去連接服務器,都可以正常連接并且能進行數據應答交互

python,多線程,socket

注意:此程序示例運行平臺為rhel7.2.x86_64,python版本為3.6.2,對于windows平臺和非同一python版本的用戶可能缺乏一定的兼容性,如果是其他平臺用戶請自行修正!!

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 新竹市| 仪征市| 桂阳县| 怀柔区| 绵阳市| 津南区| 泗阳县| 兴业县| 大兴区| 佛冈县| 横山县| 廊坊市| 香港| 临泉县| 仙桃市| 江门市| 永嘉县| 舟曲县| 通许县| 鄂温| 天峻县| 丹阳市| 宁安市| 宜都市| 福州市| 高青县| 钟祥市| 城固县| 临潭县| 仁怀市| 二连浩特市| 云阳县| 抚宁县| 赤城县| 泸水县| 资溪县| 万州区| 千阳县| 吉木萨尔县| 罗平县| 贡觉县|