假设TCP套接字服务器端已经建立好并正在监听客户端的连接了,那么客户端就可以通过Socket类来发起连接。客户端发起一个连接请求后,就被动地在等待服务器的响应。这个类同样位于java.net包中,包含很多方法用于建立连接,操作数据流等。客户端按以下几步进行工作:
① 创建一个Socket实例,构造函数直接指定远程服务器IP跟端口,建立一个TCP连接。
② 通过这个Socket实例的输入输出流进行通信,Socket实例都包含一个InputStream对象和OutputStream对象,通过操作这些流就可以实现接收发送数据。
③ 完成通信后,用Socket实例的close()方法关闭连接。
上面了解了应用层java的工作方式,接着有必要深入研究socket从应用层到系统底层是怎么工作的,应用层的这些操作在系统底层是怎么反应的。如图2-3-2-3所示,以虚线为分界线,上层位应用层,下层为系统底层。整个工作流程可以分为以下几步:
(1) 首先确定要进行通信的目标,包括目标IP和目标端口。
(2) 根据目标IP跟端口,在Java应用层创建一个Socket实例。
(3) 阻塞等待,准备进行系统底层相关工作。
(4)
① 创建一个Socket实例,构造函数直接指定远程服务器IP跟端口,建立一个TCP连接。
② 通过这个Socket实例的输入输出流进行通信,Socket实例都包含一个InputStream对象和OutputStream对象,通过操作这些流就可以实现接收发送数据。
③ 完成通信后,用Socket实例的close()方法关闭连接。
上面了解了应用层java的工作方式,接着有必要深入研究socket从应用层到系统底层是怎么工作的,应用层的这些操作在系统底层是怎么反应的。如图2-3-2-3所示,以虚线为分界线,上层位应用层,下层为系统底层。整个工作流程可以分为以下几步:
(1) 首先确定要进行通信的目标,包括目标IP和目标端口。
(2) 根据目标IP跟端口,在Java应用层创建一个Socket实例。
(3) 阻塞等待,准备进行系统底层相关工作。
(4)