TCP/IP是什麼
一個協議組。
TCP/IP為什麼流行?
因為相容各種底層組網和標準。(俗話說就是各種接線方式和線)
TCP/IP分層
應用程式層:SMTP FTP Telnet
傳輸層:TCP UDP (負責傳輸並保證到達)
網路層: IP (負責定義門牌號和路徑)
資料介面: Ethernet、 Serial Line (最接近物理層,用來封裝物理層)
=====================
Socket分類(傳輸層)
1。流式 (Stream) 對應TCP協議
2。資料報式(Gram)對應UDP協議
Socket應用:
當高層協議(如Http協議、SMTP協議)都滿足不了你的需求的時候,強烈需要自訂網路傳輸的時候才用。 否則就用WebRequest,Email,Ftp類庫就行啦。
Socket是什麼
可以看作是Client到Server的資料通道
Socket的類庫
TCPClient、TCPListener
用Socket實現的網路服務
Telnet Http Email Echo
用法--類似於打電話
用戶端:
1。建立Socket執行個體(new 一個出來)
2。通過Connet方法串連到指定伺服器
3。通過Send或者SendTo方法發送資料
4。通過Receive或ReceiveFrom方法接收回執資料
伺服器端:
1。Bind方法綁定到指定連接埠
2。用Listen方法偵聽請求
3。通過Accept接收用戶端Socket
4。處理資料
5。shutdown 並Close Socket
使用到的類:
EndPoint類:
代表一個終端,一般用 地址+連接埠 來表示。 子類 IPEndPoint用 IP+連接埠 來表示
擷取IPEndPoint:IPEndPoint ipEP=new IPEndPoint(IPAddress,port);
IPAddress類:
擷取方式:IPAddress myIp =IPAddress.Parse("192.168.0.1");
Dns類:
網域名稱服務 (DNS)類。(網域名稱服務 (DNS):把www.fltek.com.cn解析為IP地址的一種服務)
IPHostEntry myhost= Dns.Resolve("www.fltek.com.cn");
(或者 IPHostEntry myhost=Dns.GetHostByName("www.fltek.com.cn");)
IPAddress myIP=myhost.AddressList[0]; 這就擷取了上面的IPAddress
常用異常:
SocketException
ArgumentException 參數為空白異常
objectDisaposedException Socekt已關閉異常
注意:
同步和非同步:
同步表示 Socket沒擷取完資料就不把控制權交給程式,一直去擷取資料;非同步可以馬上交回給程式。
例子:
同步 Send方法
非同步:BeginSend