• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
GIS 信徒
流浪的足迹
博客园    首页    新随笔    联系   管理    订阅  订阅

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和TcpClient有什么区别

原文:http://wxwinter.spaces.live.com/blog/cns!C36588978AFC344A!322.entry

回答:
"网络编程中,使用Socket和TcpClient有什么区别"
http://community.csdn.net/Expert/TopicView.asp?id=4971812
本人回贴1:
-----------------------------
物理层: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类时,也许我上面的话会过时
posted @ 2008-12-08 15:50  Frontview  阅读(6059)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3