黏包struct的使用
總結
1.客戶端
(1)建立乙個socket物件
(2)與伺服器進行連線
(3)傳送資料 (二進位制的位元組流)
(4)關閉連線
2.socket 伺服器
(1)建立socket物件
(2)繫結對應的ip和埠(註冊網路,讓其他主機能夠找到)
(3)開啟監聽
(4)建立三次握手
(5)收發資料(recv裡面的引數單位是位元組,代表一次最多接受多少資料)
(6)四次揮手
(7)退還埠
(8)客戶端和服務端在收發資料時,
一發一收是一對,否則會導致資料異常
send 傳送 recv接受
1.建立乙個socket物件
2.讓當前埠重複繫結多個程式(僅僅在測試階段用)
3.在網路中註冊主機(繫結ip和埠號)
4.監聽埠
5.三次握手
6.收發資料
7.四次揮手
8.退還埠
1.客戶端
(1)建立udp物件(type=socket.sock_dgram => 返回udp協議物件)
(2)傳送資料
(3)客戶端接受服務端發過來的資料
(4)關閉連線
2.服務端
(1)建立udp物件(type=socket.sock_dgram => 返回udp協議物件)
(2)繫結位址埠號
(3)接受訊息(udp作為服務端的時候,第一次一定是接受訊息)
(4)服務端給客戶端發訊息
(5)關閉連線
1.針對於tcp協議,會出現黏包現象
1.pack:
把任意長度的數字轉化成居右4個位元組的固定長度的位元組流
2.unpack:
把4個位元組值恢復成原本的數字,返回是元組
3.pack的數值範圍不是無限的,上限大概在21個億左右,不要超過這個值
1.解決黏包場景:
應用場景在實時通訊時,需要閱讀此次發的訊息是什麼
2.不需要解決黏包場景:
第二十八天
1 建立乙個名稱為itcast的資料庫。create database itcast 2 設計資料表tb student的字段結構,欄位有id 學號 name 姓名 age 年齡 enrolmentdate 入學時間 並選擇適合的資料型別。tb student資料表的字段結構如下表所示 欄位名 型別...
學習python 第二十八天
要學爬蟲首先要知道robots協議 網路爬蟲排除標準 也就是 規定了哪些可以被索引,哪些不能被索引 robots.txt檔案的寫法 robots格式如下 user agent 針對定義搜尋引擎型別,代表對所有搜尋引擎 disallow 禁止抓取的位址。allow 允許抓取的位址。寫法規則,的使用要是...
蛻變,第二十八天
1 什麼是包 包是模組的一種形式,包的本質就是乙個含有 init py檔案的資料夾 2.為什麼要有包 因為如果我們要把我們寫的一大堆功能分類處理,並且數量眾多,我們需要進行分檔案儲存,則需要用到包的概念 3 如何用包 匯入包就是在包下的 init py import from import 注意的問...