Java Socket 通信 (五)

在写了简单的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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章