Python3 socket即時通訊腳本實現(xiàn)代碼實例(threading多線程)
Python 提供了兩個級別訪問的網(wǎng)絡(luò)服務(wù)。:
低級別的網(wǎng)絡(luò)服務(wù)支持基本的 Socket,它提供了標準的 BSD Sockets API,可以訪問底層操作系統(tǒng)Socket接口的全部方法。
高級別的網(wǎng)絡(luò)服務(wù)模塊 SocketServer, 它提供了服務(wù)器中心類,可以簡化網(wǎng)絡(luò)服務(wù)器的開發(fā)。
------------------------------------------------服務(wù)端代碼--------------------------------------
__author__ = "托尼老師"
"""
即時通訊原理
@@@ 服務(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)
# 堵塞接受請求
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__ = "托尼老師"
"""
即時通訊原理
@@@ 客戶端代碼
"""
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í)行客戶端代碼,可以實現(xiàn)基本通訊功能
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
- Python中多線程thread與threading的實現(xiàn)方法
- python基于queue和threading實現(xiàn)多線程下載實例
- Python用threading實現(xiàn)多線程詳解
- python使用threading獲取線程函數(shù)返回值的實現(xiàn)方法
- Python 使用threading+Queue實現(xiàn)線程池示例
- Python線程協(xié)作threading.Condition實現(xiàn)過程解析
- python中threading和queue庫實現(xiàn)多線程編程
- Python中threading庫實現(xiàn)線程鎖與釋放鎖
- Python?threading和Thread模塊及線程的實現(xiàn)
相關(guān)文章
Python使用Crypto庫實現(xiàn)加密解密的示例詳解
這篇文章主要為大家詳細介紹了Python如何使用Crypto庫實現(xiàn)加密解密的功能,文中的示例代碼講解詳細,對我們學習Python有一定的幫助,需要的可以參考一下2023-01-01
Python實現(xiàn)高斯函數(shù)的三維顯示方法
今天小編就為大家分享一篇Python實現(xiàn)高斯函數(shù)的三維顯示方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-12-12
淺談Pycharm中的Python Console與Terminal
今天小編就為大家分享一篇淺談Pycharm中的Python Console與Terminal,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-01-01
python對數(shù)組進行排序,并輸出排序后對應(yīng)的索引值方式
今天小編就為大家分享一篇python對數(shù)組進行排序,并輸出排序后對應(yīng)的索引值方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02
Python列表list操作相關(guān)知識小結(jié)
今天,本喵帶大家仔細溫習一下Python的列表,溫故而知新,不亦說乎,需要的朋友可以參考下2020-01-01
Python錯誤NameError:name?'X'?is?not?defined的解決方法
這篇文章主要給大家介紹了關(guān)于Python錯誤NameError:name?‘X‘?is?not?defined的解決方法,這是最近工作中遇到的一個問題,文中通過實例代碼將解決的方法介紹的非常詳細,需要的朋友可以參考下2023-03-03
Python中Collections模塊的Counter容器類使用教程
Counter是Python標準庫提供的一個非常有用的容器,可以用來對序列中出現(xiàn)的各個元素進行計數(shù),下面就來一起看一下Python中Collections模塊的Counter容器類使用教程2016-05-05

