java - 如何确认数据包从服务器到达客户端?

标签 java sockets connection message bufferedwriter

了解消息是否已到达客户端的最佳方法是什么?我正在使用 BufferedWriter 发送消息,它会发送消息。我可以使用来自客户端的答案并在服务器上读取它,但我想要更快的东西

Socket socket = MainServer.map_socket.get(person);
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
bw.write(msg_date +  " " + mittente + " " + testo);
bw.newLine();
bw.flush();

我正在使用此代码从服务器发送消息。它使用 key 从映射中检索套接字,问题是当客户端关闭连接并且 Bufferedwriter 发送消息时(显然它没有到达客户端)。

最佳答案

服务器知道客户端收到了一些东西的唯一方法是让客户端告诉服务器它已经收到了一些东西。这种确认机制应该是您的应用程序协议(protocol)的一部分。

关于java - 如何确认数据包从服务器到达客户端?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19548654/

相关文章:

java - Eclipse : Failed to connect to remote VM. 连接被拒绝。

java - Spring MVC - 服务应该返回可选还是抛出异常?

java - 如何向 Grizzly 服务器添加过滤器?

java - 为什么EJB服务器和客户端在同一事务中看到对方的数据库更改?

Java Socket 编程 - 地址已被使用 (errno=98)

c# - 将套接字句柄从 .NET 传递到非托 pipe 进程

linux 的 c++ 应用程序将 ipv4 数据包转换为 ipv6

java - Rest 调用应以相同的顺序返回对象和内部字段

c++ - 使用 qt c++ 为多种形式创建公共(public)数据库连接

jquery - 如何从 native Android 2.1 浏览器使用 javaScript 检查与服务器的连接?