怎样把一个Json字符串传输到网络的另一端?
1. 确定传输协议:
我们在进行网络编程的时候,首先要确定的就是传输协议,常见的传输协议就是UDP和TCP。
我采用的是TCP,因为,TCP可以保证传输数据的可靠性。
2. 应用层协议。
为啥应用层还要定义一次协议呢?
因为,应用层都是面向对象的编程,而传输层面向的是二进制的数据流,所以,我们要定义协议完成数据对象与二进制数据流直接的转换。
当然,通常来说,传输Json串,有两种方案可以实现:
A. 以换行符作为分隔符传输Json串,换句话说,就是在每个Json串后面追加一个换行符进行数据传输。这样的话,接收端在接收数据的时候,发现换行符,就意味着一个Json串接收完毕了。
B. 采用添加包头(或者包头+包尾)的方式传输Json串,包头中可以保存Json串的一些有关传输的信息,包尾可以添加分隔符(可以不添加包尾数据)。
我们知道,Java语言是要先定义类然后才能创建对应的对象的,如果Json串被接收之后,如果想要反序列化成为Java对象,只有两种方案:一种是使用Map存放Json的属性信息,另一种是自定义Class与Json对应,然后反序列化得到对象。这第二种方案里面,有一个关键的内容是,我们要先知道Json与Class的映射关系才能将Json反序列化成对象,很显然,上面说的A用换行符传输Json串就不适用了,因为,这种方式中,我们无法拿