Java程序猿之网络编程实现(30)
2016-09-18 17:14
459 查看
网络编程的实现过程我们已经很清楚了:
通过套接字找到要连接的服务器计算机
向服务器发送输出流
服务器接收输入流
经过以上三个步骤,从而实现客户端向服务器的通信;那根据Java面向对象的思想,其实每一步工作都有对象帮我们实现完成,我们只需让他们来做事;而完成网络编程的对象都位于java.net包中,名字叫socket;
我是客户端Socket,你把套接字给我,我负责打通到服务器端的通道;
![](https://img-blog.csdn.net/20160918171435703?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
我是ServerSocket,我负责等着,看有没有客户端要来找我,在等待,一直在等待;
而且我只负责等待,当我等到了客户端,我会交给另一个对象,我服务器端Socket来接待,他跟客户端socket是同类,好说话;
![](https://img-blog.csdn.net/20160918171502281?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
所以客户端和服务器端成功通信的步骤细化下来如下图:
1.客户端socket出发,通过套接字找到目标服务器端的ServerSocket应用程序
![](https://img-blog.csdn.net/20160918171527156?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
2.服务器端ServerSocket一直都在,也一直在等待,等待有人请求连接;而当真的有连接到来,ServerSocket会礼貌的呼喊服务器产生的socket接待来宾
![](https://img-blog.csdn.net/20160918171541797?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
3.客户端socket和服务器端socket亲切对话,实现信息交互;而ServerSocket自己又开始继续等待;
![](https://img-blog.csdn.net/20160918171556575?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
4.有其他客户端socket出发,ServerSocket继续负责接待,同时呼喊另一个服务端socket进行信息处理
![](https://img-blog.csdn.net/20160918171615216?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
具体的代码实现如下:
客户端socket:
![](https://img-blog.csdn.net/20160918171707811?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
服务器端ServerSocket:
通过套接字找到要连接的服务器计算机
向服务器发送输出流
服务器接收输入流
经过以上三个步骤,从而实现客户端向服务器的通信;那根据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:
相关文章推荐
- Java套接字实现网络编程之基础篇(1)
- Java网络编程:实现HTTP断点续传下载工具(附源代码)
- java网络编程五:暴力法破解登录系统的完全实现
- Java网络编程——使用NIO实现非阻塞Socket通信
- Java_常瑞鹏 java_网络编程实现一个 聊天程序
- java网络编程之HTTP服务器的实现
- java网络编程,通过TCP,Socket实现多对一的局域网聊天室 .
- Java_乔晓松_Java网络编程UDP实现黑窗口聊天
- java网络编程实现一个聊天程序
- Java网络编程:实现HTTP模拟器
- java网络编程一:模拟qq聊天功能,实现一对一聊天
- Java网络编程(22):实现HTTP模拟器
- java网络编程实现一个聊天程序
- Java套接字实现网络编程之基础篇1
- Java套接字实现网络编程之基础篇
- Java套接字实现网络编程之基础篇2
- Java UDP 网络编程 示例 -Java学习笔记(30)
- Java网络编程——使用NIO实现非阻塞Socket通信
- java网络编程,通过TCP,Socket实现多对一的局域网聊天室
- 网络编程概念全面接触(四).C++与Java的实现