黑马程序员技术交流社区

标题: java的网络连接 [打印本页]

作者: 周斌    时间: 2012-10-31 18:32
标题: java的网络连接
本帖最后由 周斌 于 2012-11-7 12:09 编辑

Socket进行建立网络连接与通过URL直接进行网络数据的传递,有什么区别,谢谢

作者: 奋斗的青春    时间: 2012-10-31 20:48
本帖最后由 吴愿涛 于 2012-10-31 20:50 编辑

本质上都是socket传输报文,只是用UrlConnection传输的报文是http协议格式的(其实就是多出一个http协议的报文头)
作用上来说 用UrlConnection连接,服务器可以是一些常用的web服务器,而用socket连接的服务器不能用web服务器,除非你模拟传输http协议的报文
从网络分层来看,URLConnection是应用层的逻辑连接,而Socket是传输层的连接概念。Connection可以拿到"流",这是一个对应用封装过的数据表现;而Socket关注数据传输的控制逻辑,比如可以对Socket设置Receive/Send buffer size, tcp_nodel等。
相应地,一般我们在网络连接时有两种异常:ConnectionTimeout与SocketTimeout。一种是在连接请求的建立时会发生;另一种指连接建立好后,如果有段时间没有数据接收或是发送就会发生。





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2