今天自己想了一下使用socket连接和使用http进行网络连接有什么区别,所以写下来和大家一起分享,还请大家多多指正。1。首先socket是一个针对TCP,UDP编程的接口,也叫做套接字编程,你可以使用socket来建立TCP,UDP连接,而TCP,UDP属于传输层的协议,但是HTTP是一个应用层的协议,然而他其实也是建立在TCP之上的。2. socket连接无法穿越防火墙,在BlackBerry设备上不支持BlackBerry BES服务特性。而http连接可以。3. socket还不能定义为一种协议,只能说他具有通信的能力,应用时还的自定义通信方式,而HTTP是一种传输协议。4. socket是对通信接口开发的工具,相对于http要更底层一些。5. 一般使用http传输的数据的大小较小,不能大于5M,在传送大数据的时候还是使用socket连接。以上是我个人的拙见,接受大家的指正,补充或板砖。

解决方案 »

  1.   

    不是同一层上的东西,完全没有可比性http底层也是通过socket实现的
      

  2.   

    9494 2. socket连接无法穿越防火墙谁说不能穿啊
      

  3.   

    3楼的你有什么证据能够证明socket能够穿越防火墙啊?
      

  4.   

    你压根没明白什么是socket.
    你把http、ssh、telnet==协议往根里刨,你看到的全是socket.
      

  5.   

    socket是什么概念,socket不是协议,socket代表网络双向互连接的端点
      

  6.   

    呵呵!接受批评,我们一致同意5楼的给大家彻底的讲解一下socket!!!
      

  7.   

    就这个理,只是我们编程界的叫法,什么socket编程。socket在网络界就是IP+端口号,如 10.13.15.12:80
    http根本就是一socket,可以说所有的高层协议(ISO分层中的应用层)的连接的建立都是用socket的。
    想想为什么啊,因为IPA与IPB通信,发过来之后,还要找到相应的进程,端口号就是用来找进程的(就像IP用来找电脑)socket连接无法穿越防,知道为什么?因为HTTP的80端口一般防火墙都给开的,你也可以禁掉,这样HTTP也穿不过防火墙了。所以这个风马牛不相及。没事在CMD中下netstat看看
      

  8.   

    如果在unix哪里 ,就是著名的BSD套接字!socket在Unix底层的实现也是一种文件描述结构而已!socket方法返回的就是文件描述符!
      

  9.   

    貌似unix/linux把一切资源都当做文件。
      

  10.   

    一个是发动机(Socket),提供了网络通信的能力 
    一个是轿车(Http),提供了具体的方式 其实http服务器内部的通讯连接是有socket来做的,所以轿车,发动机还是很形象的~