* 应用层的通信协议: http https pops smtp ftp
* 传输层协议: tcp udp
* 网络层协议: ip
* Socket是使用在传输层的一种技术。
java jdk中分别实现了基于tcp的socket -- java.net.Socket java.net.ServerSocket
基于udp的socket -- java.net.DatagramSocket
客户与服务器建立连接使用socket,用TCP/IP协议
客户聊天使用datagramSocket。用UDP协议
因为socket是基于连接的,可以清楚的知道用户的连接状态。
而datagramSocket不是基于连接的,占用资源较少,用来接受用户聊天信息更为合适。
* socket -- 对应于 tcp udp
http是基于tcp的高层协议
RMI是基于tcp的更高层协议
WebService大部分是基于http的更高层协议
RMI和WebService是用来做远程调用的,不是简单的传输数据.也就是说Rmi和WebService可以实现的功能,你自己用tcp也可以实现,但这样做没有任何标准,也不可靠.
RMI和WebService最大的区别就是前者做不到语言无关.WebService实际上是基于soap协议,把对象变成xml数据,到对方再根据配置反向还原成对象或者结构.如果你的程序是java和c++之间做远程调用,那么只能用WebService,这也是为什么现在WebService被说的这么火