本文系作者学习资料整理,如有不当之处请大家指正。
参考资料:《java网络编程精解》 孙卫琴 电子工业出版社
《java编程思想》第二版
套接字概念:套接字或者称之为插座的Socket 是一种软件形式的抽象,用于表达两台机器间一
个连接的终端。
套接字作用:在TCP/IP参考模型的五层模型中,从上层到下层分别为:应用层、传输层、网络互联层、主机-网络层,java部分网络程序是建立在TCP/IP协议基础上的,致力于实现应用层。传输层会向应用层提供套接字Socket接口,而Socket封装了以下几层的的数据传输细节,应用层程序通过套接字Socket与远程主机建立连接,并进行数据的传输。在远程主机(服务器)上,同样遵循了TCP/IP模型,以及后面的结构。
这有两个基于数据流(字节流)的套接字类一个是ServerSocket,服务器用它侦听进入的连接;另一个是Socket ,客户用它初始化一次连接。一旦客户程序申请建立一个套接字连接ServerSocket 就会返回(通过accept()方法)一个对应的服务器端套接字,以便进行直接通信。从此时起我们就得到了真正的套接字--套接字连接,可以用同样的方式对待连接的两端,因为它们本来就是相同的。