我想通过java.net.Socket发送消息。

消息是:001C020000C0154C000404850D9583CC00000004560B00E42080004C

对于我的应用程序,我需要通过一个TCP packet发送此消息。

但是检查Wireshark发生了什么,我可以看到,它将消息分为
两个重组的SSL段:


00
1C020000C0154C000404850D9583CC00000004560B00E42080004C


我如何抑制这种行为?

我的代码是:

OutputStream os = m_sslsocket.getOutputStream();
os.flush();
write(hex2Byte("001C020000C0154C000404850D9583CC00000004560B00E42080004C");
os.flush();


其中,hex2Byte将十六进制字符串转换为字节数组。

编辑:
谢谢您的意见。

无论如何,通过WireShark进行观察时,我的协议栈如下所示:


如您所见,有两个SSL段,其中一个是00
剩下的就剩下了。
如何限制只有一个网段?

以上是我写到输出流的结果。

(不必担心红色。这仅仅是因为IP校验和卸载到网络设备上。)

最佳答案

对于我的应用程序,我需要通过一个TCP数据包发送此消息。


不幸的是,无论有没有SSL,TCP都无法可靠地做到这一点。调整您的期望。这是一个字节流协议。

关于java - Java套接字-发送SSL段-如何抑制?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12057799/

10-11 11:16
查看更多