Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Networking 如何为新功能扩展网络协议?_Networking_Network Programming_Network Protocols - Fatal编程技术网

Networking 如何为新功能扩展网络协议?

Networking 如何为新功能扩展网络协议?,networking,network-programming,network-protocols,Networking,Network Programming,Network Protocols,我想设计一个协议,用于在客户端和服务器之间进行通信,以发送音频/视频。如何为新功能扩展它?最常见的方法是什么 我的想法是在协议中使用一个版本号字段,并根据这个数字反序列化头(实现这个协议)。这是正确的方法吗?可扩展协议的首要规则:不要使用二进制协议,使用文本。规则二:如果你只想发送数据(而不是命令),那么就使用嵌套的基于标记的协议,XML或JSON可以或多或少无限期地扩展,而不用担心版本编号之类的问题。谢谢,@JoachimPileborg。我喜欢使用嵌套的基于标记的协议,但它不会改变传输的总字

我想设计一个协议,用于在客户端和服务器之间进行通信,以发送音频/视频。如何为新功能扩展它?最常见的方法是什么


我的想法是在协议中使用一个版本号字段,并根据这个数字反序列化头(实现这个协议)。这是正确的方法吗?

可扩展协议的首要规则:不要使用二进制协议,使用文本。规则二:如果你只想发送数据(而不是命令),那么就使用嵌套的基于标记的协议,XML或JSON可以或多或少无限期地扩展,而不用担心版本编号之类的问题。谢谢,@JoachimPileborg。我喜欢使用嵌套的基于标记的协议,但它不会改变传输的总字节数吗?解包接收到的数据缓冲区时,如果没有版本号,如何知道是否支持新功能?即使我在基于标记的协议中使用了XML或JSON?关于新版本,您也只需为新数据添加新标记。如果数据没有新的标记,那么它来自旧客户机或服务器,如果旧客户机/服务器收到标记,它不知道它只是忽略它。非常感谢,@JoachimPileborg。如果你在回答部分写了以上内容,我肯定会将其标记为问题的答案。