javasocket编程用释放资源吗(但是必不可少的一部分)
javasocket编程用释放资源吗(但是必不可少的一部分)是因为当客户端发送关闭成功后。服务器再发送关闭成功。客户端是接收不到的。因为已经关闭了。为什么是服务器发送完可以关闭后,没有等客户端确认关闭成功,服务器就直接发送关闭成功呢?2) :Socket的连接步骤。根据连接启动的方式以及本地套接字要连接的目标,套接字之间的连接过程可分为三个步骤:服务器监听,客户端请求。连接确认。(如果加上数据交互 断开连接就是5个步骤)。1):服务器监听:是服务器端套接字并不定位具体的客户端的套接字,而是等待连接的状态,实时监控网络连接的状态。
1) :什么是socket?
网络上两个程序是通过一个双向的通信连接实现数据的交换。这个连接的一端被称为Socket。
建立网络通信连接至少要一个端口号。Socket本质是编程接口(API),对TCP/IP的封装。TCP/IP也要提供可供程序员做网络开发所用的接口。这就是Socket编程接口。HTTP是轿车,提供了封装或显示数据的具体形式。Socket是发动机,提供了网络通信的能力。
Socket是"套接字"。用于描述IP地址和端口,是一个通讯链的句柄。可以用来实现不同计算机之间的通信。每一台主机运行了多个服务软件,可以同时提供几种服务,每种服务都会打开一个Socket。并绑定到一个端口上,不同的端口对应不同的服务。就像一个插板。每一个Socket就是一个插口。有的插口是提供220伏的交流电。有的是提供110伏的交流电。
2) :Socket的连接步骤。
根据连接启动的方式以及本地套接字要连接的目标,套接字之间的连接过程可分为三个步骤:服务器监听,客户端请求。连接确认。(如果加上数据交互 断开连接就是5个步骤)。
1):服务器监听:是服务器端套接字并不定位具体的客户端的套接字,而是等待连接的状态,实时监控网络连接的状态。
为什么是服务器发送完可以关闭后,没有等客户端确认关闭成功,服务器就直接发送关闭成功呢?
是因为当客户端发送关闭成功后。服务器再发送关闭成功。客户端是接收不到的。因为已经关闭了。
客户端:
我们知道连接的时候都是有一个客户端和服务器端。我们先看看客户端的Socket。
我们Java中提供的API。 Socket这个类就是代表客户端的socket。
客户端的思路是:
我们通过代码来看下:
服务器端:
服务器端对应的JavaAPI是ServerSocket。
思路:
1:创建服务器的Socker 在Java中对应的API是ServerSocket。
2:服务器只要获取到连接过来的客户端就可以和指定的客户端通信了。
3:建立好连接后,从socket中获取输入流,并建立缓冲区进行读取。
4:在服务器端就可以拿到并操作客户端发送过来的数据了。
5:关闭客户端的通信。
6:关闭服务器端的通信。
输出结果:
这就是Java Socket的基本知识,虽然在日常开发中用到的不是非常多,但是也是开发者必不可少的一项技能,所以接下来还会逐一的对服务端客户端进行介绍。