Java的网络程序都建立在TCP/IP协议基础上,致力于实现应用层。传输层向应用层提供了套接字,Socket接口,socket封装了下层的数据传输细节,应用层的程序通过Socket来建立与远程主机的连接,以及进行数据的传输。
站在应用层的角度,两个进程之间的一次通信过程从建立连接开始,接着交换数据i,到断开连接结束,套接字可以看做是通信线路量多的收发器,进程通过套接字来收发数据。
在Java中,有三种套接字:Java.net.Socket
Java.net.ServerSocket
Java.net.DataGramSocket
其中Socket和ServerSocket类都建立在TCP协议基础上,DatagramSocket类建立在UDP基础上。Java网络程序都采用C/S通信模式。
注:
Java网络程序位于TCP/IP参考模型的网络传输层。
TCP、UDP都是TCP/IP传输层的协议。
假如一个进程已经占用TCP的80端口,它还能占用UDP的80端口。
HTTP服务一般占用TCP的80端口。