gpt4 book ai didi

Java Socket问题,缓冲区同时接收两个数据包。

转载 作者:行者123 更新时间:2023-12-01 19:18:42 24 4
gpt4 key购买 nike

我正在使用 Java Socket API 进行通信。但有时我会收到,数据包附在单个数据包中。我怎样才能避免同样的情况。在 Java NIO 或 java NIO 2 中是否有任何方法可以解决相同问题。我确信数据包是单独发送的。但两者都存储在单个缓冲区中。

请注意,这里的数据包只不过是数据的逻辑分离。数据由第三方系统发送。他们一一发送。但我同时收到两个数据包。

最佳答案

这就是它应该工作的方式。 TCP 使用数据包来传输数据,但从高级套接字 API 中看不到它:您打开一个输出流并发送任意数量的数据。该数据由 TCP/IP 协议(protocol)栈分割成数据包。在接收端,您打开输入流并接收数据,而不知道数据已被拆分为数据包。

如果您想要两个应用程序级数据包,请设计一个传输协议(protocol),使用数据包之间的分隔符、固定大小的数据 block 或其他任何可以区分逻辑数据包和逻辑数据包的部分的内容。下一篇。

关于Java Socket问题,缓冲区同时接收两个数据包。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5471451/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com