TCP/IP是一种协议,一种面向连接的、可靠的协议。Socket仅仅是针对TCP、UDP网络接口来封装,不涉及上层协议。TCP与UDP的传输特性不一样,适用于不同类型的应用层协议,TCP有连接,延时较长,能保证服务质量。UDP无连接,应用程序需要进行数据分包、延时短,效率高,数据包可能丢失或达到对端发生数据混乱。在Socket之上可以实现RFC标准的应用层协议,也可以自定义实现私有的应用协议。
在java编程中经常使用java.net和javax.net包来开发socket程序,下面列出所有常用的类。
Java.net
Java.net.Socket 客户端连接使用的TCP Socket
Java.net.DatagramSocket 客户端和服务器共同使用的UDP Socket
Java.net.ServerSocket 服务端TCP Socket监听接口
Java.net.InetAddress IP地址封装类
Java.net.DataGramPacket 通过DatagramSocket首发数据包的封装类,包括数据和对端的IP地址、UDP端口
Javax.net
Javax.net.SocketFactory 客户端连接使用的TCP Socket
Javax.net.ServerSocketFactory 服务端TCP Socket监听端口
Javax.net.ssl.SSLSocketFactory SSL客户端Socket构造器
Javax.net.ssl.SSLServerFactory SSL服务监听Socket构造器