EasySocket icon indicating copy to clipboard operation
EasySocket copied to clipboard

能不能直接支持所有格式

Open irunmyway opened this issue 5 years ago • 3 comments

目前连接发送数据都正常,但是在接收服务端恢复的时候报错,我也设置过最大返回大小,还是会报错。 image

irunmyway avatar Jun 25 '20 12:06 irunmyway

目前连接发送数据都正常,但是在接收服务端恢复的时候报错,我也设置过最大返回大小,还是会报错。 image

客户端和服务端传输的消息格式最好统一,框架在接收服务端数据的时候会对数据进行解析,解析的基本规则是把数据的消息格式默认为:消息头+消息体,这个协议也是大部分人遵从的数据格式,当然你可以自定义自己的消息格式,只要实现框架的接口:

public interface IMessageProtocol {

/**
 * 获取包头的长度
 */
int getHeaderLength();

/**
 * 获取数据包体的长度,根据协议这个长度应该写在包头中,在读取数据的时候会用到
 */
int getBodyLength(byte[] header, ByteOrder byteOrder);

/**
 * 封装消息格式,返回socket发送的byte数组
 * 根据自己定义的消息格式来实现
 * @param sender
 * @return
 */
byte[] pack(ISender sender);

} 配置好之后,框架就会遵循你定义的格式去解析数据

可以说在你遵循了这个接口定义的消息格式的情况下,还是支持所有的消息格式的

jiusetian avatar Jul 23 '20 14:07 jiusetian

最新版1.7.0已结可以支持所有格式了

jiusetian avatar Sep 06 '20 16:09 jiusetian

最新版1.7.0已结可以支持所有格式了

如果我要发送XMl形式的字符窜数据转换成字节数据发送,没有明确包头和包体长度,能支持?

chenxiaofei910714 avatar May 07 '21 07:05 chenxiaofei910714