socketserver實現併發操作

2022-08-22 23:54:09 字數 1505 閱讀 5054

服務端:當無端埠有問題時,改個埠

#

socketserver 實現併發

import

socketserver

class

myserver(socketserver.baserequesthandler):

def handle(self):#

內建handle方法

print('

conn is

',self.request)#

conn

print('

addr is

',self.client_address)

while

true:

try:

#收訊息

data=self.request.recv(1024)

ifnot data:break

print('

收到客戶端訊息是

',data)

#發訊息

self.request.sendall(data.upper())

except

exception as e:

print

(e)

break

if__name__ == '

__main__

':#多執行緒實現併發,單執行緒就相當於乙個服務員,多執行緒相當於好幾個服務員

s=socketserver.threadingtcpserver(('

127.0.0.1

',8000),myserver)#

myserver相當於通訊迴圈,

#threadtcpserver相當於鏈結迴圈

s.serve_forever()

客戶端:

from socket import *ip_port=('

127.0.0.1

',8000)

back_log=5buffer_size=1024tcp_client=socket(af_inet,sock_stream)#

資料報tcp_client.connect(ip_port)

while

true:

msg=input('

>>

').strip()

ifnot msg:continue

if msg== '

quit

':break

tcp_client.send(msg.encode(

'utf-8'))

data=tcp_client.recv(buffer_size)

print('

收到服務端發來訊息是

',data.decode('

utf-8'))

tcp_client.close()

#緩衝區為空,輸入就會卡住,不往下執行如》hello,在服務端加上try except 進行異常處理

客戶端1與客戶端**相同,

socketserver實現併發

使用socketserver模組實現多執行緒或多程序併發 tcp服務端 import socketserver class myserver socketserver.baserequesthandler defhandle self print conn是 self.request 建立的鏈結,s...

socketserver實現併發(Python)

server類 處理鏈結 request類 處理通訊 基於tcp 服務端 import socketserver class myserver socketserver.baserequesthandler def handle self print self.request conn print ...

2 socketserver實現併發

1 tcp socketserver伺服器端 coding utf 8 import socketserver class myserver socketserver.baserequesthandler defhandle self print conn is self.request print...