隨筆 Socket 鏈結 必須 上下行 同時使用

2022-01-12 07:39:03 字數 459 閱讀 9357

結論:

> socket理論上支援 只上行,或者 只下行。

> 心跳包 必須是 上下行的 —— 心跳包請求(上行) - 心跳包響應(下行)。

> 如果 長時間 只有單向鏈結(只傳送不接受,或者 只接受不傳送) —— 路由器 就會 丟棄 socket資料。

> 心跳包 不是 必須的 —— 任意 上下行組合 都能 維持 socket 所需的 軟體(作業系統、程式)、硬體(電腦、路由器,手機基站)的 有效性。

案例:

> 手機通過 socket 分片段 傳送 100m 的檔案(上行,只傳送,不接受),平均耗時 3~5 分鐘。

> 偶發異常:伺服器接收的資料 突然丟失。

> 如果 在檔案 每傳送乙個片段後,反向傳送 幾個空位元組(下行) —— 偶發異常消失。

Socket通訊隨筆

1 伺服器與同乙個客戶端可以同時建立多個socket,而且每個socket有唯一標識。如python程式1與python程式2同時建立多個socket 實驗結果如下 注意 上面兩張圖為同一次輸出結果,圖太大了,分兩次截。上面的,顯示了python程式1接收到的三次socket連線的socket列印值...

socket鏈結和http鏈結

我們在傳輸資料時,可以只使用 傳輸層 tcp ip協議,但是那樣的話,如果沒有應用層,便無法識別資料內容,如果想要使傳輸的資料有意義,則必須使用到應用層協議,應用層協議有很多,比如http ftp telnet等,也可以自己定義應用層協議。web使用http協議作應用層協議,以封裝http文字資訊,...

阻塞的Socket鏈結

usr bin perl w socket cli.plx usage socket cli.plx 同乙個檔案重複執行次數 傳送socket包存放的檔案 從檔案第幾行開始執行 use strict use io socket use benchmark my addr 127.0.0.1 my p...