-1

我制作了一个服务器,其中数据本身的发送是这样的:

PrintWriter writer = new PrintWriter(new OutputStreamWriter(clientSocket.getOutputStream(), "UTF-8"));
writer.write(json);
writer.close();

我怎么知道服务器是否确实发送了整个消息?

在我的客户端(用 C# 编写)中,当 json 字符串很长时,我会得到一定数量的字节,它小于 json 字符串的长度(由于某种原因,最大长度总是 183 个字节)。

客户端正在使用异步连接。我怎么知道服务器是否确实发送了整个消息?是否有可能我需要将一条长消息分成多个块并一个接一个地发送?我只是不确定问题出在服务器还是客户端。

4

1 回答 1

0

我最后所做的是在消息中添加一个带有消息大小的标头,然后在 C# 端检查接收到的消息的大小是否是消息的大小,如果不是,请再次向套接字询问数据直到我收到完整的信息。

于 2015-04-06T18:30:38.717 回答