本帖最后由 吴愿涛 于 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。一种是在连接请求的建立时会发生;另一种指连接建立好后,如果有段时间没有数据接收或是发送就会发生。 |