套接字服务器如何知道客户端通过

时间:2018-07-12 16:04:38

标签: web

在套接字级别,建立连接后,服务器将继续从套接字读取数据,我的问题是服务器如何知道客户端不会发送任何数据?

1 个答案:

答案 0 :(得分:1)

  

服务器如何知道客户端不会发送任何数据

不是。一种选择是扫描预先约定的“消息末尾”字节序列。当服务器看到此字节序列时,它将认为消息已完全接收。如果缓冲区中还有更多数据,则它属于另一条消息。

否则,客户端必须提前通告其消息长度。 “我现在要向您发送X个字节。这些是:...”然后服务器仅从套接字读取X个字节,并认为消息已完全接收。

看一下redis protocol作为第二种方案的示例。它非常简单且功能齐全。实际上,它是如此简单,可以实现一个完整的客户端in only 20 lines of ruby