当前位置:编程学习 > JAVA >>

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实现的 --------------------编程问答--------------------


这本书学过的吧 --------------------编程问答--------------------
引用 1 楼 ticmy 的回复:
不是同一层上的东西,完全没有可比性

http底层也是通过socket实现的
9494 

2. socket连接无法穿越防火墙

谁说不能穿啊 --------------------编程问答-------------------- 3楼的你有什么证据能够证明socket能够穿越防火墙啊?
--------------------编程问答--------------------
引用 4 楼 mole_java 的回复:
3楼的你有什么证据能够证明socket能够穿越防火墙啊?

你压根没明白什么是socket.
你把http、ssh、telnet==协议往根里刨,你看到的全是socket. --------------------编程问答--------------------
引用 1 楼 ticmy 的回复:
不是同一层上的东西,完全没有可比性

http底层也是通过socket实现的


当你说“不是同一层上的东西”实际上已经在比较了,所以说,还是可比的。

lz从应用的角度来总结,这样的学习习惯很好。并且总结的不错。 

--------------------编程问答-------------------- socket是什么概念,socket不是协议,socket代表网络双向互连接的端点 --------------------编程问答-------------------- 呵呵!接受批评,我们一致同意5楼的给大家彻底的讲解一下socket!!! --------------------编程问答--------------------
引用 7 楼 dracularking 的回复:
socket是什么概念,socket不是协议,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方法返回的就是文件描述符! --------------------编程问答--------------------
引用 14 楼 liuxuejin 的回复:
如果在unix哪里 ,就是著名的BSD套接字!socket在Unix底层的实现也是一种文件描述结构而已!socket方法返回的就是文件描述符!

貌似unix/linux把一切资源都当做文件。 --------------------编程问答-------------------- 大学的时候学过计算机网络,呵呵!但是当时光睡觉,打球了,谢谢各位朋友的知识的分享,学习了。 --------------------编程问答--------------------
引用 9 楼  的回复:
引用 7 楼 dracularking 的回复:

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

就这个理,只是我们编程界的叫法,什么socket编程。

socket在网络界就是IP+端口号,如 10.13.15.12:80
http根本就是一socket,可以说所有的高层协议(ISO分层中的应用层)的连接的建立都是用socket的。
想……


受教 --------------------编程问答-------------------- 计算机网络方面的知识我基本不清楚。。受教   --------------------编程问答-------------------- 一个是发动机(Socket),提供了网络通信的能力 
一个是轿车(Http),提供了具体的方式 

其实http服务器内部的通讯连接是有socket来做的,所以轿车,发动机还是很形象的~

--------------------编程问答--------------------
补充:Java ,  Java SE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,