是不是被一般寫法,多程序寫法,多執行緒寫法甚至是協程寫法搞的不可開交
雲裡霧裡,彷彿將要放棄~再配上伺服器要服務多個客戶端
完蛋了,全都亂了~那今天就給你推薦乙個好的模組!sockerserver
具體操作:
import socketserver #1、引入模組
class myserver(socketserver.baserequesthandler): #2、自己寫乙個類,類名自己隨便定義,然後繼承socketserver這個模組裡面的baserequesthandler這個類
def handle(self): #3、寫乙個handle方法,必須叫這個名字
#self.request #6、self.request 相當於乙個conn
self.request.recv(1024) #7、收訊息
msg = '親,學會了嗎'
self.request.send(bytes(msg,encoding='utf-8')) #8、發訊息
self.request.close() #9、關閉連線
pass
if __name__ == '__mian__':
server = socketserver.threadingtcpserver(('127.0.0.1',8090),myserver)#4、使用socketserver的threadingtcpserver這個類,將ip和埠的元祖傳進去,還需要將上面咱們自己定義的類傳進去,得到乙個物件,相當於我們通過它進行了bind、listen
server.serve_forever() #5、使用我們上面這個類的物件來執行serve_forever()方法,他的作用就是說,我的服務一直開啟著,就像京東一樣,不能關閉**,對吧,並且serve_forever()幫我們進行了accept
#注意:
#有socketserver 那麼有socketclient的嗎?
#當然不會有,我要作為客戶去訪問京東的時候,京東幫我也客戶端了嗎,客戶端是不是在我們自己的電腦啊,並且socketserver對客戶端沒有太高的要求,只需要自己寫一些socket就行了。
把注釋去掉:
import socketserver
class myserver(socketserver.baserequesthandler):
def handle(self):
# self.request
self.request.recv(1024)
msg = '親,學會了嗎'
self.request.send(bytes(msg, encoding='utf-8'))
self.request.close()
pass
if __name__ == '__mian__':
server = socketserver.threadingtcpserver(('127.0.0.1', 8090), myserver)
是不是超級簡單!!!!!!!!!
這是服務端對吧,客戶端很好寫,就正常寫
到此!socket通訊才算是真正的學習完了!
*****
*****
番外 socketserver用法
是不是被一般寫法,多程序寫法,多執行緒寫法甚至是協程寫法搞的不可開交 雲裡霧裡,彷彿將要放棄 再配上伺服器要服務多個客戶端 完蛋了,全都亂了 那今天就給你推薦乙個好的模組!sockerserver 具體操作 import socketserver 1 引入模組 class myserver sock...
番外 函式隨記
void swap int a,int b a 和 b 列舉四種情況 a 110 0 b 010 1 a 100 1 b 110 0 和最初的 a 一樣 a 010 1 和最初的 b 一樣 data 1 bit num bit num 為0 資料最大位1.function void getsyste...
番外 深淺copy
copy是什麼意思?複製 又學乙個單詞!開不開森 那啥叫複製呢?我們曾經有過這樣的印象 a zhangsan b a a jack print a,b jack zhangsan 這樣就相當於用 b 複製了 一遍 a 對吧!那你在網上down文章的時候,作者把文章刪除了 你的電腦裡就沒了嗎?要是沒了...