Network programming tcp服务器问题

Network programming tcp服务器问题,network-programming,Network Programming,服务器如何知道接收的是哪种数据包?(struct,数组…) PS:我知道,TCP服务器接收字节流。超出此范围的任何解释都取决于应用程序逻辑。它不是-它只是一堆位/字节。应用程序使用应用程序级协议,决定如何解释这些位/字节 就像内存是一堆位/字节一样,指向结构的指针可以强制指向任何地方,结构可以用来读取内存,但数据可能毫无意义。应用程序逻辑确保(希望如此)结构指针只应用于包含有效结构数据的内存。类似地,网络应用程序必须决定如何解释数据包或TCP流中的位的含义 应用程序可以使用众所周知的协议来决定如

服务器如何知道接收的是哪种数据包?(struct,数组…)


PS:我知道,TCP服务器接收字节流。超出此范围的任何解释都取决于应用程序逻辑。

它不是-它只是一堆位/字节。应用程序使用应用程序级协议,决定如何解释这些位/字节

就像内存是一堆位/字节一样,指向结构的指针可以强制指向任何地方,结构可以用来读取内存,但数据可能毫无意义。应用程序逻辑确保(希望如此)结构指针只应用于包含有效结构数据的内存。类似地,网络应用程序必须决定如何解释数据包或TCP流中的位的含义


应用程序可以使用众所周知的协议来决定如何解释这些字节。例如,HTTP协议指示客户端应该传输什么,服务器知道如何根据HTTP规范解释来自客户端的数据,而不管客户端发送什么(例如,如果游戏客户端意外地向HTTP服务器发送二进制流),HTTP服务器仍将尝试将bits解释为HTTP客户端请求。

什么类型的数据包是什么意思?你是说礼节吗?如果是,在哪一层?没有愚蠢的问题,只有愚蠢的选民。(事实上,这并不完全正确;有一些愚蠢的问题,但这肯定不是。)