Python3 socket同步通信簡(jiǎn)單示例
本文實(shí)例講述了Python3 socket同步通信。分享給大家供大家參考,具體如下:
本文比較簡(jiǎn)單,適合入門(mén)用,作個(gè)筆記,方便日后抄寫(xiě)
一個(gè)服務(wù)端,一個(gè)客戶端,而且是阻塞方式,一次只能接受一個(gè)客戶端連接并通信噢。
客戶端發(fā)送‘bye', 結(jié)束與服務(wù)端的通信,如果發(fā)送'shutdown',服務(wù)端將會(huì)關(guān)閉自己!
服務(wù)端代碼:
from socket import *
from time import ctime
HOST = ''
PORT = 21567
BUFSIZE = 1024
ADDR = (HOST, PORT)
tcpSerSock = socket(AF_INET, SOCK_STREAM)
tcpSerSock.bind(ADDR)
tcpSerSock.listen(5)
quit = False
shutdown = False
while True:
print('waiting for connection...')
tcpCliSock, addr = tcpSerSock.accept()
print('...connected from: ', addr)
while True:
data = tcpCliSock.recv(BUFSIZE)
data = data.decode('utf8')
if not data:
break
ss = '[%s] %s' %(ctime(), data)
tcpCliSock.send(ss.encode('utf8'))
print(ss)
if data == 'bye':
quit = True
break
elif data == 'shutdown':
shutdown = True
break
print('Bye-bye: [%s: %d]' %(addr[0], addr[1]))
tcpCliSock.close()
if shutdown:
break
tcpSerSock.close()
print('Server has been
客戶端代碼:
from socket import *
HOST = 'localhost'
PORT = 21567
BUFSIZE = 1024
ADDR = (HOST, PORT)
tcpCliSock = socket(AF_INET, SOCK_STREAM)
tcpCliSock.connect(ADDR)
while True:
data = input('>')
if not data:
continue
print('input data: [%s]' %data)
tcpCliSock.send(data.encode('utf8'))
rdata = tcpCliSock.recv(BUFSIZE)
if not rdata:
break
print(rdata.decode('utf8'))
if data == 'bye' or data == 'shutdown':
break
tcpCliSock.close()
更多關(guān)于Python相關(guān)內(nèi)容可查看本站專(zhuān)題:《Python Socket編程技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門(mén)與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
通過(guò)python繪制華強(qiáng)買(mǎi)瓜的字符畫(huà)視頻的步驟詳解
要把華強(qiáng)賣(mài)瓜做成字符視頻大概分為三步,通過(guò)讀取視頻,把每一幀轉(zhuǎn)為字符畫(huà),接著把字符畫(huà)表現(xiàn)出來(lái),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧2021-11-11
python實(shí)現(xiàn)事件驅(qū)動(dòng)
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)事件驅(qū)動(dòng)的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-11-11
python使用點(diǎn)操作符訪問(wèn)字典(dict)數(shù)據(jù)的方法
這篇文章主要介紹了python使用點(diǎn)操作符訪問(wèn)字典(dict)數(shù)據(jù)的方法,涉及Python操作字典的技巧,需要的朋友可以參考下2015-03-03
python tkinter制作用戶登錄界面的簡(jiǎn)單實(shí)現(xiàn)
這篇文章主要介紹了python tkinter制作用戶登錄界面的簡(jiǎn)單實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04
numpy數(shù)組合并和矩陣拼接的實(shí)現(xiàn)
這篇文章主要介紹了numpy數(shù)組合并和矩陣拼接的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03
利用Python的Flask框架來(lái)構(gòu)建一個(gè)簡(jiǎn)單的數(shù)字商品支付解決方案
這篇文章主要介紹了利用Python的Flask框架來(lái)構(gòu)建一個(gè)簡(jiǎn)單的數(shù)字商品支付解決方案,文中用極簡(jiǎn)的代碼展示了一個(gè)flask框架下的支付模版,需要的朋友可以參考下2015-03-03

