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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值