1. 程式人生 > 程式設計 >Python3 socket即時通訊指令碼實現程式碼例項(threading多執行緒)

Python3 socket即時通訊指令碼實現程式碼例項(threading多執行緒)

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()

先執行 服務端程式碼,再執行客戶端程式碼,可以實現基本通訊功能

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。