Python3 socket即時通訊指令碼實現程式碼例項(threading多執行緒)
阿新 • • 發佈:2020-06-01
Python 提供了兩個級別訪問的網路服務。:
低級別的網路服務支援基本的 Socket,它提供了標準的 BSD Sockets API,可以訪問底層作業系統Socket介面的全部方法。
高級別的網路服務模組 SocketServer, 它提供了伺服器中心類,可以簡化網路伺服器的開發。
------------------------------------------------服務端程式碼--------------------------------------
__author__ = "託尼老師" """ 即時通訊原理 @@@ 服務端程式碼 """ from socket import * import threading ip = '0.0.0.0' port =8888 # 定義 socket 引數 Server = socket(AF_INET,SOCK_STREAM) Server.bind((ip,port)) Server.listen() print("[*] SocketServer 正在監聽...") # 接受函式 def recvs(): while 1: print(' [*] 客戶端說: %s '% client.recv(1024).decode('utf-8')) #傳送函式 def sends(): while 1: say = bytes(input(' [*] 我說: '),encoding='utf-8') client.send(say) # 堵塞接受請求 client,client_ip = Server.accept() print(client_ip[0] +':'+str(client_ip[1])+' 連線成功!' ) # 建立接受執行緒 receive = threading.Thread(target =recvs,args=() ) receive.start() # 建立傳送執行緒 send = threading.Thread(target =sends,args=() ) send.start()
------------------------------------------------客戶端程式碼--------------------------------------
__author__ = "託尼老師" """ 即時通訊原理 @@@ 客戶端程式碼 """ from socket import * import threading ip,port ='127.0.0.1',8888 Client = socket(AF_INET,SOCK_STREAM) Client.connect((ip,port)) def sends() -> '傳送函式': while 1: say = bytes(input("[*]我說: "),encoding='utf-8') Client.send(say) def recvs() -> '接受函式': while 1: print('[*] 服務端說: %s ' % Client.recv(1024).decode('utf-8')) receive = threading.Thread(target =recvs,args=() ) send.start()
先執行 服務端程式碼,再執行客戶端程式碼,可以實現基本通訊功能
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。