溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python3 socket即時(shí)通訊腳本的實(shí)現(xiàn)方法

發(fā)布時(shí)間:2020-07-22 09:20:17 來源:億速云 閱讀:182 作者:小豬 欄目:開發(fā)技術(shù)

這篇文章主要講解了Python3 socket即時(shí)通訊腳本的實(shí)現(xiàn)方法,內(nèi)容清晰明了,對(duì)此有興趣的小伙伴可以學(xué)習(xí)一下,相信大家閱讀完之后會(huì)有幫助。

Python 提供了兩個(gè)級(jí)別訪問的網(wǎng)絡(luò)服務(wù):

低級(jí)別的網(wǎng)絡(luò)服務(wù)支持基本的 Socket,它提供了標(biāo)準(zhǔn)的 BSD Sockets API,可以訪問底層操作系統(tǒng)Socket接口的全部方法。

高級(jí)別的網(wǎng)絡(luò)服務(wù)模塊 SocketServer, 它提供了服務(wù)器中心類,可以簡化網(wǎng)絡(luò)服務(wù)器的開發(fā)。

------------------------------------------------服務(wù)端代碼--------------------------------------

__author__ = "托尼老師"

"""
即時(shí)通訊原理 
@@@ 服務(wù)端代碼

"""

from socket import *
import threading

ip = '0.0.0.0'
port =8888
# 定義 socket 參數(shù)

Server = socket(AF_INET,SOCK_STREAM)
Server.bind((ip,port))
Server.listen()
print("[*] SocketServer 正在監(jiān)聽...")

# 接受函數(shù)
def recvs():
  while 1:
    print(' [*] 客戶端說: %s '% client.recv(1024).decode('utf-8'))

#發(fā)送函數(shù)
def sends():
  while 1:
    say = bytes(input(' [*] 我說: ') , encoding='utf-8')
    client.send(say)
# 堵塞接受請(qǐng)求

client,client_ip = Server.accept()
print(client_ip[0] +':'+str(client_ip[1])+' 連接成功!' )

# 創(chuàng)建接受線程
receive = threading.Thread(target =recvs ,args=() )
receive.start()
# 創(chuàng)建發(fā)送線程
send = threading.Thread(target =sends ,args=() )
send.start()

------------------------------------------------客戶端代碼--------------------------------------

__author__ = "托尼老師"

"""
即時(shí)通訊原理 
@@@ 客戶端代碼

"""

from socket import *
import threading

ip,port ='127.0.0.1',8888

Client = socket(AF_INET,SOCK_STREAM)
Client.connect((ip,port))

def sends() -> '發(fā)送函數(shù)':
  while 1:

    say = bytes(input("[*]我說: "),encoding='utf-8')
    Client.send(say)
def recvs() -> '接受函數(shù)':
  while 1:

    print('[*] 服務(wù)端說: %s ' % Client.recv(1024).decode('utf-8'))

receive = threading.Thread(target =recvs ,args=() )
receive.start()
# 創(chuàng)建發(fā)送線程
send = threading.Thread(target =sends ,args=() )
send.start()

先執(zhí)行 服務(wù)端代碼,再執(zhí)行客戶端代碼,可以實(shí)現(xiàn)基本通訊功能

看完上述內(nèi)容,是不是對(duì)Python3 socket即時(shí)通訊腳本的實(shí)現(xiàn)方法有進(jìn)一步的了解,如果還想學(xué)習(xí)更多內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI