服務端:當無端埠有問題時,改個埠
#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:
(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...