java - 数据包,当通过我的 SSL 套接字发送时变得非常大

标签 java sockets ssl sslsocketfactory

我最近尝试通过创建一个用于从服务器实时流式传输数据的 SSL 套接字来进行套接字编程,当然没有成功。当我通过 Wireshark 分析数据包时,我意识到请求数据的大小在数据包中被放大了 n 倍,因此请求以片段的形式到达服务器,而实际的 JSON 请求只有几个字节,应该到达服务器。

如有任何帮助,我们将不胜感激。

最佳答案

SSLSocket 的输出流周围包裹一个 BufferedOutputStream,并且在您真正需要之前不要刷新它,这通常是在您即将阅读之前答复。否则,您可以一次向 SSLSocket 发送一个字节,这将成为每个字节一个 SSL 消息,这可以将数据扩展 40 倍以上。

但是:

the request reaches the server in fragments

这随时都可能发生。服务器必须能够处理一次接收一个字节这样严重碎片化的数据。

where as the actual JSON request is a handful of bytes and should reach the server in a single shot.

TCP 中没有这样的保证。

关于java - 数据包,当通过我的 SSL 套接字发送时变得非常大,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49973771/

相关文章:

java - 递归函数改变原始数组?

java - java中使用Collectors进行分组操作后的转换

c# - 关于 C# UDP 套接字

c - 网络接收定时器以 ms 分辨率

security - 服务器如何在多人游戏中验证客户端?

java - 将 sql 转换为 criteriaBuilder

java - 有没有办法将 HTML 数据和图形数据转储到 pdf 中?

c - connect() 不返回

Django+uwsgi+nginx+lets加密无法访问https

c# - 基于 SSL + X.509 的 Web 服务返回 SSL/TLS 错误