Python學習---基于TCP協議的網絡通信程序案例

TCP簡介:

●TCP 面向連接、可靠的、基于字節流的傳輸控制協議
●TCP的特點
????????○面向連接
????????○可靠傳輸
????????????????■應答機制
????????????????■超時重傳
????????????????■錯誤校驗
????????????????■流量管控
●TCP通信模型
TCP嚴格區分客戶端、服務端

?tcp通信模型:

?客戶端代碼:

# 1﹑導入socket模塊
import socket# 2·創建socket套接字
tcp_client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 3·建立tcp連接(和服務端建立連接)
address = ("192.168.52.2", 8080)
tcp_client_socket.connect(address)
# 4·開始發送數據(到服務端)
tcp_client_socket.send("你好,世界!".encode("gbk"))
# 接收數據:二進制數據
recv_data = tcp_client_socket.recv(1024)
recv_text = recv_data.decode("gbk")
print("收到數據:", recv_text)
# 5·關閉套接字
tcp_client_socket.close()

服務端代碼:?

1.能夠接受一個客戶端的多條信息

2.能夠接受多個客戶端連接

?目前是單線程,只有第一個客戶端斷開連接后第二個客戶端才能連接,多線程可實現多個客戶端同時連接收發消息

import socket# 1.socket創建一個套接字
tcp_server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 2.bind綁定ip和port,默認本地ip地址
address = ("", 10000)
tcp_server_socket.bind(address)
# 3.開啟監聽,listen使套接字變為可以被動鏈接,允許接受最大連接數
tcp_server_socket.listen(128)
while True:# 4.accept等待客戶端的鏈接,返回一個新的套接字和客戶端的ip地址端口號,此套接字負責和客戶端通信recv_data = tcp_server_socket.accept()# 5.recv/send接收發送數據new_client_socket, client_ip_port = recv_dataprint(f"{client_ip_port}  已連接……………………")while True:recv_data = new_client_socket.recv(1024)# 當接受到為空時說明客戶端已經斷開連接,服務器也應該斷開,非空即為真:if recv_data:recv_text = recv_data.decode("gbk")print(f"接收到來自{str(client_ip_port)}的信息:{recv_text}")else:print("客戶端已經斷開連接!!!!")break# 關閉本次通信連接new_client_socket.close()
# 6.關閉服務器連接
tcp_server_socket.close()

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/14982.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/14982.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/14982.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

智慧展廳設計的難點有哪些

1、運用先進的展示技術 將全息影像、三維投影、虛擬現實、人機互動等技術做做完美銜接,把展廳的內容展示做到豐富多彩,從而讓展廳富有科技感和藝術性。 2、內容要生動有趣 從而更好地吸引參觀者。展廳設計師要與客戶有良好深入的溝通,搜集與整…

TP6 模型批量插入獲取插入的自增ID

在TP框架中,數據插入 添加一條數據,返回添加成功的條數 $data [foo > bar, bar > foo]; Db::name(user)->save($data); // 或者 Db::name(user)->insert($data); 批量添加 $data [[foo > bar, bar > foo],[foo > bar1, bar > foo1],[…

mysql相關知識總結

目錄 1.建表2.添加字段3.修改字段類型4.添加索引5.遇到的問題 1.建表 CREATE TABLE test.table_test ( id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 主鍵id, day date DEFAULT NULL COMMENT 日期, show_cnt bigint(20) DEFAULT 0 COMMENT 曝光次數, play_time do…

無人機的相關基礎知識(看不懂了 待定以后繼續補充)

視頻: 【浙江大學】浙大博導帶你從0制作無人機_嗶哩嗶哩_bilibili 什么是無人飛行器 無人機自主導航構架 IMU(加速度計和陀螺儀),可以測出當前的 加速度和角速度 這倆信息再去融合外部傳感器 (例如視覺傳感器或者雷…

YoloV9實戰與改進——專欄目錄

摘要 🔥🚀本專欄教你如何嗨翻Yolov9!🚀🔥 🚀炸裂升級:嗨,小伙伴們!這里有一波Yolov9的升級大招,帶你領略最新論文的精華!💥 什么注意…

爬蟲面試手冊

爬蟲面試手冊 薪資13~20k 崗位職責: 負責公司數據平臺的數據采集、運維優化;負責自動化腳本,爬蟲腳本;研究數據采集策略和防屏蔽規則,提升數據采集系統的穩定性、可擴展性,提高抓取的效率和質量; 崗位要求 本科及…

Java中的自動裝箱和拆箱

在Java中,自動裝箱(Autoboxing)和拆箱(Unboxing)是兩種重要的特性,它們允許在基本數據類型(如int、char、double等)和它們對應的包裝類(如Integer、Character、Double等&…

技術周總結 2024.05.13-05.19(計算機網絡 浮點數不準確原因和解決 java ThreadLocal XSS)

文章目錄 一、05.18周六1.1)網絡相關1.1.1) 問題01:交換機和路由器的區別是什么?交換機(Switch)路由器(Router)總結 1.1.2) 問題02:以太網介紹基本概念物理層…

lenovo聯想小新Pro 16 APH8 2023款(83AR)筆記本電腦原裝出廠Windows11系統鏡像安裝包下載

恢復出廠開箱狀態OEM預裝win11系統,自帶恢復重置初始化還原功能 下載鏈接:https://pan.baidu.com/s/1n_mPM4ZrLPrmXpCTukuyCQ?pwdmnwj 提取碼:mnwj 聯想原裝系統自帶所有驅動、出廠主題壁紙、系統屬性聯機支持標志、Office辦公軟件、聯想…

王安石,變革年代的文學巨匠

王安石,字介甫,號半山,生于北宋真宗天禧五年(公元1021年),卒于哲宗元佑元年(公元1086年),享年66歲。他是中國歷史上杰出的政治家、思想家、文學家和改革家,其…

2024年電工杯A題論文首發+摘要分享+問題一代碼分享

問題一論文代碼鏈接:https://pan.baidu.com/s/1kDV0DgSK3E4dv8Y6x7LExA 提取碼:sxjm --來自百度網盤超級會員V5的分享 園區微電網風光儲協調優化配置 摘要:園區微電網由風光發電和主電網聯合為負荷供電,為了盡量提高風光電量的…

python ofd轉pdf及圖片

本文部分內容參考,如有侵權請聯系刪除:使用 easyofd 解析ofd 文件_python模塊easyofd如何使用-CSDN博客 背景需求:需要將郵箱中得ofd格式發票提取出來轉換成pdf或者圖片。 在網上搜了發現使用pyofd包,安裝之后使用各種問題&…

.NET 一款兼容Exchange獲取密鑰的工具

01閱讀須知 此文所提供的信息只為網絡安全人員對自己所負責的網站、服務器等(包括但不限于)進行檢測或維護參考,未經授權請勿利用文章中的技術資料對任何計算機系統進行入侵操作。利用此文所提供的信息而造成的直接或間接后果和損失&#xf…

SCSS基本使用:構建高效、可維護的CSS架構

SCSS基本使用:構建高效、可維護的CSS架構 SCSS(Sassy CSS)是一個流行的CSS預處理器,它擴展了CSS的功能,提供了變量、嵌套規則、混合(Mixins)、函數等強大的編程特性,使得開發者能夠編…

甘肅教育雜志社-甘肅教育編輯部

《甘肅教育》來稿要求:    1、本刊對所有稿件有刪改權,如不同意刪改,請投稿時注明,切勿一稿多投,來稿一律文責自負。    2、稿件以word文檔格式,小四號宋體字,1.5倍行距。觀點鮮明,數據…

電商平臺的消費增值模式革新

在當今的電商市場,用戶留存和粘性是各大平臺競相追求的目標。而消費增值模式,以其獨特的激勵機制,正逐漸成為電商平臺吸引和留住用戶的新策略。 一、消費即投資:創新的返利機制 在傳統的電商消費中,消費者完成交易后&…

小阿軒yx-FTP文件傳輸服務

小阿軒yx-FTP文件傳輸服務 協議 用來上傳和下載實現遠程共享文件統一管理文件 原理 控制文件的雙向傳輸,是一個應用程序工作在TCP/IP協議簇的提高文件傳輸的共享性和可靠性使用C/S模式的工作方式連接同時處理服務器和客戶端的連接命令和數據傳輸將命令和數據分…

【NumPy】NumPy實戰入門:線性代數(dot、linalg)與隨機數(numpy.random)詳解

🧑 博主簡介:阿里巴巴嵌入式技術專家,深耕嵌入式人工智能領域,具備多年的嵌入式硬件產品研發管理經驗。 📒 博客介紹:分享嵌入式開發領域的相關知識、經驗、思考和感悟,歡迎關注。提供嵌入式方向…

Modular RPG Hero PBR

-掩碼著色著色器提供了無限的顏色變化。(適用于標準/HDRP/URP 11.0.0) -為劍與盾/雙劍/雙劍姿態提供了簡單的角色控制器。(不包括弓和魔杖控制器)(它是用舊的輸入系統建造的) -HDRP/URP(11.0.0)SRP 100%支持常規著色器和遮罩著色著色器(基于著色器圖形) -具有許多模塊…

rtk技術的使用, test ok

1. 什么是gnss 2 rtk定位