网络编程的实现过程我们已经很清楚了:
通过套接字找到要连接的服务器计算机
向服务器发送输出流
服务器接收输入流
经过以上三个步骤,从而实现客户端向服务器的通信;那根据Java面向对象的思想,其实每一步工作都有对象帮我们实现完成,我们只需让他们来做事;而完成网络编程的对象都位于java.net包中,名字叫socket;
我是客户端Socket,你把套接字给我,我负责打通到服务器端的通道;
我是ServerSocket,我负责等着,看有没有客户端要来找我,在等待,一直在等待;
而且我只负责等待,当我等到了客户端,我会交给另一个对象,我服务器端Socket来接待,他跟客户端socket是同类,好说话;
所以客户端和服务器端成功通信的步骤细化下来如下图:
1.客户端socket出发,通过套接字找到目标服务器端的ServerSocket应用程序
2.服务器端ServerSocket一直都在,也一直在等待,等待有人请求连接;而当真的有连接到来,ServerSocket会礼貌的呼喊服务器产生的socket接待来宾
3.客户端socket和服务器端socket亲切对话,实现信息交互;而ServerSocket自己又开始继续等待;
4.有其他客户端socket出发,ServerSocket继续负责接待,同时呼喊另一个服务端socket进行信息处理
具体的代码实现如下:
客户端socket:
通过套接字找到要连接的服务器计算机
向服务器发送输出流
服务器接收输入流
经过以上三个步骤,从而实现客户端向服务器的通信;那根据Java面向对象的思想,其实每一步工作都有对象帮我们实现完成,我们只需让他们来做事;而完成网络编程的对象都位于java.net包中,名字叫socket;
我是客户端Socket,你把套接字给我,我负责打通到服务器端的通道;
我是ServerSocket,我负责等着,看有没有客户端要来找我,在等待,一直在等待;
而且我只负责等待,当我等到了客户端,我会交给另一个对象,我服务器端Socket来接待,他跟客户端socket是同类,好说话;
所以客户端和服务器端成功通信的步骤细化下来如下图:
1.客户端socket出发,通过套接字找到目标服务器端的ServerSocket应用程序
2.服务器端ServerSocket一直都在,也一直在等待,等待有人请求连接;而当真的有连接到来,ServerSocket会礼貌的呼喊服务器产生的socket接待来宾
3.客户端socket和服务器端socket亲切对话,实现信息交互;而ServerSocket自己又开始继续等待;
4.有其他客户端socket出发,ServerSocket继续负责接待,同时呼喊另一个服务端socket进行信息处理
具体的代码实现如下:
客户端socket:
服务器端ServerSocket: