1. 程式人生 > >基於TCP通信的套接字

基於TCP通信的套接字

tro bsp 命令 src 添加 str .com 服務 簡單

基於tcp通信的套接字必須先啟動服務器再去啟動客戶端去鏈接服務器

客戶端

技術分享圖片

服務端

技術分享圖片

這只是基於tcp通信的一個簡單的套接字 只能進行一次的通信

服務端 客戶端

技術分享圖片技術分享圖片

這是能多次通信的套接字

在阻塞前添加一個循環就能實現一個鏈接循環

技術分享圖片

服務端

技術分享圖片

客戶端

技術分享圖片

這是模擬ssh實現遠程執行命令

粘包問題

二、兩種情況下會發生粘包。

1.發送數據時間間隔很短,數據了很小,會合到一起,產生粘包

2.接收方不及時接收緩沖區的包,造成多個包接收(客戶端發送了一段數據,服務端只收了一小部分,服務端下次再收的時候還是從緩沖區拿上次遺留的數據,產生粘包)

客戶端

技術分享圖片

服務端

技術分享圖片

之前的ssh遠程執行命令一直會有粘包問題存在 用struct模塊能很好的解決粘包問題

服務端

技術分享圖片技術分享圖片

客戶端

技術分享圖片

基於TCP通信的套接字