1,建立網路連線
//////建立連線
/// ///
///public
async taskconnect(networkaddr address)
catch
(exception ex)
return
networkstate;
}
建立連線為非同步可等待方法,上層呼叫的時候一定要記得await,否則可能會遇到,連線沒連上已經傳送資料的情況。
2,連線的狀態
由於streamsocket沒有連線狀態屬性,我們只能自定義乙個列舉型別
//////網路狀態列舉
/// public
enum
networkstatusenum
在建立鏈結的時候可能會失敗,這是一種常見情況,還有一種是在網路已經連線上,中間使用過程中伺服器無法連線的情況就比較特殊,我們這裡採用的是心跳包的方案。 客戶端每10秒鐘發個心跳包,服務端會反饋心跳包,保證鏈結通暢。
3,傳送資料報
//////傳送資料
/// ///
///public
async tasksend(byte
data)
//把資料寫入到傳送流
mwriter.writebytes(data);
//非同步傳送
try
catch
(exception ex)
return
networkstate;
}return
networkstate;
}
4,接受資料報
//////資料接受
/// public
async
task beginreceived()
byte tempbytearr = new
byte
[sizefieldcount];
//將剛才reader讀取到的資料填充到tempbytearr
mreader.readbytes(tempbytearr);
networkstate =networkstatusenum.connected;
postpacket(tempbytearr);
}catch
(exception ex)
}}
接收的時候要注意乙個設定,inputstreamoptions得設定為partial,這樣就可以不用等待服務端攢到一定位元組再返回,否則會影響返回的即時性。
5,ssl證書連線
由於微軟取消了本地證書的x.509的幫助類,所以沒法解析此證書檔案,現在可以使用三方的開源類庫(bouncycastle)解析它,他支援ssl安全證書網路流。方便好用,關鍵是開源。
Http 網路通訊的一些知識
get post ajax method,url,data 1.http 請求方法表示行為和操作,請求頭中method 2.url表示資源post 建立,非冪等 該方法多次執行,獲得結果是否一致 get 查詢,冪等 多次執行,返回相等的結果 put 更新,冪等 delete 刪除,非冪等1.user...
網路通訊的一些基本概念
最初由四個位元組,四個字點表示 130.207.244.244 ipv4 fe8o fcfd 4aff fecf ea4e ipv6 不便記憶,所以常用主機名 hostname 代替 127.由本地程式使用16即位掩碼,表示該子網內部ip位址前16位要一致 5.資料報分組 df標記 don t fr...
網路通訊中的一些基本概念
以下內容摘抄自網路 ip 網際協議 在網路的世界裡,為了要辨識每一部計算機的位置,因此有了計算機 ip 位址的定義。乙個 ip 就好似乙個門牌!例如,你要去微軟的 的話,就要去 64.4.11.42 這個 ip 位置!這些可以直接在網際網路上溝通的 ip 就被稱為 實體 ip 了。虛擬ip tcp和...