----------------------------- 物理层:HUB,网线 链路层:MAC,ARP,交换机 网络层:IP,ICMP,IGMP,路由器 传输层:TCP,UDP 会话层:HTTP,SMTP,FTP,POP3 表示层:SOAP,SSL 应用层:WebService的Method ------------------------------- Socket是对网络层操作 TcpClient是对传输层操作 ASP.NET是对会话层操作
================================= 如果用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都不用考虑了
现在再说[Socket和TcpClient有什么区别] Socket:网络层 TcpClient:传输层 当你只考虑:主机,端口,数据传输时,用TcpClient,或UdpClient 当你要考虑:IP封包,路由,IP数据包时,用Socket 还有NET中的Socket类提供了一些对Socket操作的高级封装,但同时无法实现一些Socket底部操作。