服务器如何知道他接收的是哪种数据包? (struct,array ...)? PS:我知道愚蠢的问题
答案 0 :(得分:1)
TCP服务器接收字节流。除此之外的任何解释都取决于应用程序逻辑。
答案 1 :(得分:1)
它没有 - 它只是一堆位/字节。 应用程序使用应用程序级协议决定如何解释这些位/字节。
就像内存是一堆比特/字节一样 - 指向结构的指针可以强制指向任何地方,结构可以用来读取内存,但数据可能是荒谬的。您的应用程序逻辑确保(希望)结构指针仅应用于包含有效结构数据的内存。同样,您的网络应用程序必须决定如何解释数据包或TCP流中的位数。
应用程序可以使用众所周知的协议来决定如何解释这些字节。例如,HTTP协议指示客户端应该传输什么,并且服务器知道根据HTTP规范如何从客户端解释该数据。无论客户端发送什么(例如,如果游戏客户端意外地将二进制流发送到HTTP服务器),HTTP服务器仍会尝试将这些位解释为HTTP客户端请求。