Java Socket 通信 (五)
来源:互联网 发布:apache安装包下载地址 编辑:程序博客网 时间:2024/06/15 03:54
在写了简单的socket通信之后,该开始封装了!废话少说,跟着思路走:
一、传输数据的封装
根据前几次的博客内容,我发现,客户端和服务器读和写的数据可以封装起来,统一叫做Packet。这样服务器和客户端通信就有了“规矩”,客户端不再是随随便便的来一个未知的字符串,让服务器懵逼很久。有了统一的格式,约定俗成,通信就方便快捷多了!
在包中,我们约定,每个包都有一个id值(对应packetId),命令号(对应command),内容(对应content)。上一篇博客说过,命令号,就对应一个请求。内容是包的主体部分。这只是一个抽象类,具体让实现类去实现。产生Packet的得有个类,叫PacketFactory.java吧!Packet是否发送成功,需要一个监听PacketListener.java。
具体代码我就不贴了,在文末链接去下载吧!
二、读写线程封装
客户端和服务器的读写线程都可以抽出来,建立两个类,分别是PacketWriter.java和PacketReader.java.虽然说实际项目中服务器的读写不需要我们管。但暂时还是得模拟下。
三、客户端的封装
在我看来,客户端与服务器通信就是一个连接。连接上了,就可以通信了,连接出现问题,就报错了。先建立一个接口叫Connection.java.有没有连接上得需要监听。所以说还得需要一个ConnectionListener.java.再写个抽象类,将socket中大多数共性方法写在里面。
四、实现封装的接口,继承抽象类,测试。
新建WPBPacket.java 实现Packet。新建WPBClientForMockServer.java继承抽象类。当然还得要有一个服务器了。
代码在我的github上:https://github.com/Demidong/JavaSocket
1 0
- Java Socket 通信 (五)
- Java(socket通信)
- Java Socket应用(五)——编程实现基于 TCP 的 Socket 通信
- C++ SOCKET通信模型(五)poll
- Java Socket应用(一)--Socket通信
- Java 网络编程(五) 使用TCP/IP的套接字(Socket)进行通信
- Java--Socket通信(单向)
- Java--Socket通信(双向)
- Java Socket通信(多线程)
- Java--Socket通信(双向)
- java Socket通信(二)
- Java(扩展Socket通信)
- Java Socket 通信 (一)
- Java Socket 通信 (二)
- Java Socket 通信 (三)
- Java Socket 通信 (四)
- Java--Socket通信(双向)
- Java Socket编程(五)
- Spring4 条件注解@Conditional
- css实现三角形
- Hdoj1009 FatMouse' Trade
- HTTP Header中的ETag
- Android引入布局 GridView实现ImageView+TextView
- Java Socket 通信 (五)
- 将某个表中存在重复列名的项的某列值改为同一值
- MAC下Cornerstone错误异常导致奔溃
- sql删除表清除表数据修改表结构
- Java的行走之路
- python环境搭建
- easyui-accordion title无法绑定onclick事件解决方法
- VL09 不能取消来自分散系统的货物移动
- ASP.NET Web API 帮助界面测试+接口注释