
socket连接和http连接的区别
1个回答
展开全部
其实这样比是有问题的,http实际上是一种应用级协议,常用的是http1.0和http 1.1协议。而socket则是一个连接,它直接在链路层上进行连接。在该连接的基础之可以实现各种应用级协议。如通过socket可以实现ftp协议、http、https、NetBIOS、Win、Iron等等,甚至于可以实现蓝牙(蓝牙连接在.net中不被支持,是因为socket所需参数的协议簇中枚举中没有蓝牙,但可以直接通过数据,实现与蓝牙的通信)。所以http是一个协议与Socket连接是没有可比性的,在.net中,可实现http协议的连接。
正是因为socket功能的强大,所以对于socket编程一般用于特殊一点的协议或高性能网络要求的情况下才使用这种编程。如果是一般的tcp/ip,在.net中已经实现了其功能封装。例如WebClient实现http/https,再如.net 4.5新增的HttpClient也可以实现同的功能。但这些功能较为狭窄,那么在.net中的可插入协议是一个中庸的选择。目前实现的有HttpWebRequest/FtpWebRequest。并且可继承WebRequest实现自己的可插入协议。
也就是说,如果我们与httpClient或WebClient与Scoket相比的话,WebClinet/HttpClient是实现特定功能的Socket封装,它减少开发周期,但底层还是Socket。如果WebRequest与Socket相比的话,WebRequest是实现特定协议的Socket封闭,并可实现可插入协议。换句来说,WebClient是完完全全的一个通信类,而WebRequest则算是一个协议开发类(它已经实现了FtpWebRequest及HttpWebRequest),而Socket则是底层开发。
正是因为socket功能的强大,所以对于socket编程一般用于特殊一点的协议或高性能网络要求的情况下才使用这种编程。如果是一般的tcp/ip,在.net中已经实现了其功能封装。例如WebClient实现http/https,再如.net 4.5新增的HttpClient也可以实现同的功能。但这些功能较为狭窄,那么在.net中的可插入协议是一个中庸的选择。目前实现的有HttpWebRequest/FtpWebRequest。并且可继承WebRequest实现自己的可插入协议。
也就是说,如果我们与httpClient或WebClient与Scoket相比的话,WebClinet/HttpClient是实现特定功能的Socket封装,它减少开发周期,但底层还是Socket。如果WebRequest与Socket相比的话,WebRequest是实现特定协议的Socket封闭,并可实现可插入协议。换句来说,WebClient是完完全全的一个通信类,而WebRequest则算是一个协议开发类(它已经实现了FtpWebRequest及HttpWebRequest),而Socket则是底层开发。

2023-06-12 广告
以太网接插件是一种用于连接计算机和网络设备的硬件接口,通常用于局域网和城域网络。以太网接插件由一个或多个端口组成,用于传输数据信息。常见的以太网接插件类型包括E类、T类、C类和S类等。以太网接插件是通过光纤或双绞线连接到计算机和网络设备的。...
点击进入详情页
本回答由上海德康电子提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询