Python TCP通信客戶端服務(wù)端代碼實例
這篇文章主要介紹了Python TCP通信客戶端服務(wù)端代碼實例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
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'的長度 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('正在偵聽{}...'.format(sc.getsockname())) num = 0 while True: scc, address = sc.accept() print('連接來自:', address) print('socket名字:', scc.getsockname()) print('socket peer:', scc.getpeername()) while True: message = scc.recv(42)#recvall(scc, 24) # 嘗試 12,,20,28會是什么結(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()
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python微服務(wù)開發(fā)之使用FastAPI構(gòu)建高效API
微服務(wù)架構(gòu)在現(xiàn)代軟件開發(fā)中日益普及,它將復(fù)雜的應(yīng)用程序拆分成多個可獨立部署的小型服務(wù)。本文將介紹如何使用 Python 的 FastAPI 庫快速構(gòu)建和部署微服務(wù),感興趣的可以了解一下2023-05-05基于Python?OpenCV和?dlib實現(xiàn)眨眼檢測
這篇文章主要介紹了基于Python?OPenCV及dlib實現(xiàn)檢測視頻流中的眨眼次數(shù)。文中的代碼對我們的學(xué)習(xí)和工作有一定價值,感興趣的同學(xué)可以參考一下2021-12-12Pytorch實現(xiàn)常用乘法算子TensorRT的示例代碼
pytorch 用于訓(xùn)練,TensorRT用于推理是很多AI應(yīng)用開發(fā)的標(biāo)配。大家往往更加熟悉 pytorch 的算子,而不太熟悉TensorRT的算子。本文介紹了Pytorch中常用乘法的TensorRT實現(xiàn),感興趣的可以了解一下2022-06-06Python中的命名元組簡單而強大的數(shù)據(jù)結(jié)構(gòu)示例詳解
namedtuple是Python中一個非常有用的數(shù)據(jù)結(jié)構(gòu),它提供了一種簡單的方式創(chuàng)建具有固定字段的輕量級對象,通過使用namedtuple,可以提高代碼的可讀性和可維護性,避免了使用類定義對象的復(fù)雜性,這篇文章主要介紹了Python中的命名元組簡單而強大的數(shù)據(jù)結(jié)構(gòu),需要的朋友可以參考下2024-05-05Python基于win32ui模塊創(chuàng)建彈出式菜單示例
這篇文章主要介紹了Python基于win32ui模塊創(chuàng)建彈出式菜單,結(jié)合實例形式分析了Python使用win32ui模塊創(chuàng)建彈出式菜單的具體步驟與相關(guān)操作技巧,并附帶說明了win32ui模塊的安裝命令,需要的朋友可以參考下2018-05-05python tkinter GUI繪制,以及點擊更新顯示圖片代碼
這篇文章主要介紹了python tkinter GUI繪制,以及點擊更新顯示圖片代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03使用matplotlib創(chuàng)建Gif動圖的實現(xiàn)
本文主要介紹了使用matplotlib創(chuàng)建Gif動圖的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-04-04