GJM Socket TCP 通訊連線(四)

2022-02-28 13:13:06 字數 982 閱讀 9594

伺服器開啟後,開始非同步監聽客戶端連線。客戶端連線時,例項化tcplistenerclient,並開始非同步監聽資料。接收到資料時,判斷資料長度,0則為斷開連線,不為0則引發接收資料完成事件。

可以通過tcplistenerclient傳送資料或斷開連線。

伺服器關閉時要先斷開所有客戶端連線。

客戶端連線伺服器,開始非同步接收伺服器資料。接收到資料時,判斷資料長度,0則為斷開連線,不為0則引發接收資料完成事件。

客戶端連線伺服器後,可以傳送資料與斷開連線。

sockethandler是專門處理接收傳送的物件。

傳送資料時,要判斷傳送佇列是否有資料正在傳送或等待傳送。如果有資料,則把要傳送的資料加入傳送佇列。

傳送資料過程,先傳送要傳送資料的長度=>ushor型別=>byte型別。然後再傳送主資料。

傳送完成時,判斷傳送佇列是否還有資料,有則繼續傳送。返回是否傳送成功。遇到異常則不成功。

接收資料時,先接收byte[2]的主要資料長度頭資訊,轉換為ushort型別。

然後接收這個長度的資料,endread裡要判斷是否接收完全,不完全則繼續接收。

接收完成後直接返回接收到的資料。

下面發乙個簡易測試延遲程式的示例**。

客戶端。

view code

伺服器。

view code

客戶端傳送當前時間轉byte資料

伺服器接收到後又傳送客戶端傳送的資料。

客戶端收到資料後,用當前時間減去收到的時間,除以2,得到網路延遲。

專案檔案:

GJM Socket TCP 通訊連線(三)

現在我們只剩下伺服器端了。伺服器端包含兩個類,乙個tcplistener,乙個tcplistenerclient。tcplistener只管start與stop還有accept。tcplistenerclient是連線到伺服器的客戶端,相當於tcpclient在tcplistener上的體現。現在我...

如何再造通訊連鎖的客戶之路

最近在廣東,親身體驗了廣東的城市轉型,以及在通訊連鎖行業的客戶進行企業轉型的痛苦之路。當整個區域,乃至於中國在為低端的製造加工業向高階製造業和服務業轉型的時候,給通訊連鎖行業帶來的觸動不亞於一場大 隨著上千人 上萬人的工廠一夜之間的搬遷,瞬間很多門店門可羅雀,客流量銳減,擺在這些大型通訊連鎖企業面前...

FTP 一 通訊連線原理

一 ftp服務說明 ftp file transfer protocol 即檔案傳輸協議,是網際網路比較古老的服務之一,用於在網路上進行檔案傳輸的一套標準協議,使用客戶 伺服器模式。它屬於網路傳輸協議的應用層。二 ftp服務執行模式 ftp服務一般預設執行在tcp 20 資料傳輸 和tcp 21 通...