Python TCP通信客戶端服務(wù)端代碼實(shí)例
這篇文章主要介紹了Python TCP通信客戶端服務(wù)端代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
TCP客戶端:
import argparse, socket,sys
import time
# socket.setdefaulttimeout(20)
def recvall(sock, length):
data = b''
while len(data) < length:
more = sock.recv(length - len(data))
if not more:
raise EOFError('總共有%dbytes,但只收到了%dbytes' % (length, len(data)))
data += more
return data
if __name__ == '__main__':
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect(('192.168.137.1', 10000))
print('客戶的分配了socket:', sock.getsockname())
i=0
for x in range(4):
# try:
text = '我是客戶端你是服務(wù)器嚯嚯嚯!'.encode('utf-8')
i=i+len(text)
sock.sendall(text)
sys.stdout.flush()
print("已發(fā)送:",i)
# except ConnectionResetError:
# pass
sock.shutdown(socket.SHUT_WR)
num = 0
while True:
reply = sock.recv(48) # b'Farewell, client'的長(zhǎng)度
num += len(reply)
print('接收:',num)
if not reply:
print("ok")
break
# print('服務(wù)器返回:', reply.decode('utf-8'))
print("理論上應(yīng)該關(guān)閉sock")
sock.close()
time.sleep(1)
TCP服務(wù)端:
import argparse, socket,sys
def recvall(sock, length):
data = b''
while len(data) < length:
more = sock.recv(length - len(data))
if not more:
raise EOFError('總共有%dbytes,但只收到了%dbytes' % (length, len(data)))
data += more
return data
if __name__ == '__main__':
sc = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sc.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
sc.bind(('', 10000))
sc.listen()
print('正在偵聽(tīng){}...'.format(sc.getsockname()))
num = 0
while True:
scc, address = sc.accept()
print('連接來(lái)自:', address)
print('socket名字:', scc.getsockname())
print('socket peer:', scc.getpeername())
while True:
message = scc.recv(42)#recvall(scc, 24) # 嘗試 12,,20,28會(huì)是什么結(jié)果
if not message:
break
# print('收到16-octet消息:', repr(message))
print('收到16-octet消息:', (message.decode('utf-8')))
scc.sendall(message)
sys.stdout.flush()
num += len(message)
print("已發(fā)送:",num)
scc.close()
print('應(yīng)答發(fā)送,socket關(guān)閉')
sc.close()
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python通過(guò)命令開(kāi)啟http.server服務(wù)器的方法
這篇文章主要給大家介紹了關(guān)于Python通過(guò)命令開(kāi)啟http.server服務(wù)器的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-11-11
python知識(shí):裝飾器@property到底有啥用途
這篇文章主要介紹了python裝飾器@property到底有啥用途,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-01-01
PyTorch的Optimizer訓(xùn)練工具的實(shí)現(xiàn)
這篇文章主要介紹了PyTorch的Optimizer訓(xùn)練工具的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08
python中重啟for循環(huán),使其重新開(kāi)始遍歷
這篇文章主要介紹了python中重啟for循環(huán),使其重新開(kāi)始遍歷方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03
Pandas時(shí)間數(shù)據(jù)處理詳細(xì)教程
日常工作中日期格式有多種表達(dá)形式,比如年份開(kāi)頭或是月份開(kāi)頭2022/6/4、6/4/2022等,通過(guò)pandas的日期數(shù)據(jù)處理,這篇文章主要給大家介紹了關(guān)于Pandas時(shí)間數(shù)據(jù)處理的相關(guān)資料,需要的朋友可以參考下2023-01-01
Django REST framework 分頁(yè)的實(shí)現(xiàn)代碼
這篇文章主要介紹了Django REST framework 分頁(yè)的實(shí)現(xiàn)代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06
舉例詳解Python中的split()函數(shù)的使用方法
這篇文章主要介紹了舉例詳解Python中的split()函數(shù)的使用方法,split()函數(shù)的使用是Python學(xué)習(xí)當(dāng)中的基礎(chǔ)知識(shí),通常用于將字符串切片并轉(zhuǎn)換為列表,需要的朋友可以參考下2015-04-04
用python3 urllib破解有道翻譯反爬蟲機(jī)制詳解
這篇文章主要介紹了python破解網(wǎng)易反爬蟲機(jī)制詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08
詳解Python中while無(wú)限迭代循環(huán)方法
Python 有 while 語(yǔ)句和 for 語(yǔ)句作為循環(huán)處理。雖然 for 語(yǔ)句具有一定數(shù)量的進(jìn)程,但 while 語(yǔ)句是直到滿足條件類型的循環(huán)進(jìn)程。本文將詳解while無(wú)限迭代循環(huán)方法,需要的可以了解一下2022-04-04

