socket和http连接小议
今天自己想了一下使用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连接。
以上是我个人的拙见,接受大家的指正,补充或板砖。 --------------------编程问答-------------------- 不是同一层上的东西,完全没有可比性
http底层也是通过socket实现的 --------------------编程问答--------------------
这本书学过的吧 --------------------编程问答-------------------- 9494
2. socket连接无法穿越防火墙
谁说不能穿啊 --------------------编程问答-------------------- 3楼的你有什么证据能够证明socket能够穿越防火墙啊?
--------------------编程问答--------------------
你压根没明白什么是socket.
你把http、ssh、telnet==协议往根里刨,你看到的全是socket. --------------------编程问答--------------------
当你说“不是同一层上的东西”实际上已经在比较了,所以说,还是可比的。
lz从应用的角度来总结,这样的学习习惯很好。并且总结的不错。
--------------------编程问答-------------------- socket是什么概念,socket不是协议,socket代表网络双向互连接的端点 --------------------编程问答-------------------- 呵呵!接受批评,我们一致同意5楼的给大家彻底的讲解一下socket!!! --------------------编程问答--------------------
就这个理,只是我们编程界的叫法,什么socket编程。
socket在网络界就是IP+端口号,如 10.13.15.12:80
http根本就是一socket,可以说所有的高层协议(ISO分层中的应用层)的连接的建立都是用socket的。
想想为什么啊,因为IPA与IPB通信,发过来之后,还要找到相应的进程,端口号就是用来找进程的(就像IP用来找电脑)
socket连接无法穿越防,知道为什么?因为HTTP的80端口一般防火墙都给开的,你也可以禁掉,这样HTTP也穿不过防火墙了。所以这个风马牛不相及。
没事在CMD中下netstat看看
--------------------编程问答-------------------- --------------------编程问答-------------------- 受教!~ --------------------编程问答-------------------- 没可比性的,呵 --------------------编程问答-------------------- 原来还有计算机网络这门课~~ --------------------编程问答-------------------- 如果在unix哪里 ,就是著名的BSD套接字!socket在Unix底层的实现也是一种文件描述结构而已!socket方法返回的就是文件描述符! --------------------编程问答--------------------
貌似unix/linux把一切资源都当做文件。 --------------------编程问答-------------------- 大学的时候学过计算机网络,呵呵!但是当时光睡觉,打球了,谢谢各位朋友的知识的分享,学习了。 --------------------编程问答--------------------
受教 --------------------编程问答-------------------- 计算机网络方面的知识我基本不清楚。。受教 --------------------编程问答-------------------- 一个是发动机(Socket),提供了网络通信的能力
一个是轿车(Http),提供了具体的方式
其实http服务器内部的通讯连接是有socket来做的,所以轿车,发动机还是很形象的~
--------------------编程问答--------------------
补充:Java , Java SE