Socket與TcpClient的區別(轉載)

"網絡編程中,使用Socket和TcpClient有什麼區別"
-----------------------------
物理層:HUB,網線
鏈路層:MAC,ARP,交換機
網絡層:IP,ICMP,IGMP,路由器
傳輸層:TCP,UDP
會話層:HTTP,SMTP,FTP,POP3
表示層:SOAP,SSL
應用層:WebService的Method
-------------------------------
Socket是對網絡層操作
TcpClient是對傳輸層操作
ASP.NET是對會話層操作
你可以用Socket訪問IIS中的ASP.NET的頁面,不過傳輸層,會話層的轉換就要你自已用代碼實現了

 
問:
你可以用Socket訪問IIS中的ASP.NET的頁面,不過傳輸層,會話層的轉換就要你自已用代碼實現了
=================================
上面的話是什麼意思?

本人回貼2:
如果你用Socket訪問IIS,要做如下考慮:
網絡層:
使用什麼網絡層協議,如IPV4還是IPV6;如果開發路由器也要考慮這個問題
傳輸層:
你要使用那種傳輸層協議,比如是TCP.
會話層:
你要使用那種會話層協議,如HTTP.
=====================================================
也就是說你可以用
Socket類.Send方法 發送如下字串的二進制到IIS
//
GET /?T1=234&T2=789&B1=%CC%E1%BD%BB HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.0.3705)
Host: 192.168.0.2:81
Connection: Keep-Alive
//
你會收用Receive到如下數據:
//
HTTP/1.0 200 OK
MIME_version:1.0
Content_Type:text/html
Content_Length:N

[input type=button]
//
然後你可以將此數據解析成一個HTML頁的按鈕
///////////////////////////////////////////////////////////
上面的操作就是:
網絡層-----會話層,用Socket訪問IIS中的ASP.NET的頁面
傳輸層,會話層的轉換自已用代碼實現了
但是要這樣做,WEB開發人員會死的很慘,所以WEB開發只要實現[會話層-----會話層]就可以了
他要要做的只是[form] 到IIS,Response到客戶端。
而到了WebService的Method開發時,Response都不用考慮了
 
本人回貼3:
現在再說[Socket和TcpClient有什麼區別]
Socket:網絡層
TcpClient:傳輸層
當你只考慮:主機,端口,數據傳輸時,用TcpClient,或UdpClient
當你要考慮:IP封包,路由,IP數據包時,用Socket
還有NET中的Socket類提供了一些對Socket操作的高級封裝,但同時無法實現一些Socket底部操作。
目前在NET中不建議使用Socket,就如現在不建議使用NET開發DirectX一樣,雖然可以做到
等路由器,交換機都使用Win CE,集成Net類時,也許我上面的話會過時
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章