套接字编程:通过单个呼叫接收一条完整的消息

时间:2016-04-18 23:21:49

标签: java c# android sockets

我有一台PC服务器(用C#编写),一台PC客户机(用Java编写),一台Android客户机客户机(与PC客户机代码相同)。当我从PC客户端向服务器发送消息时,我收到一条带有一个receive()的消息。但是当我从android客户端向服务器发送消息时,单个receive()最终会有多条消息。

我正在使用TCP,我知道它是基于流的协议。但是为什么PC客户端总是一次发送1条消息。我怎么能用android客户端实现呢?

1 个答案:

答案 0 :(得分:0)

您无法做任何事情,以确保您在一次read()电话中收到完整的讯息。在TCP中没有消息这样的东西。它是一个字节流协议。如果你想要消息,你必须使用应用程序协议自己实现它们。