Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否有方法确定数据是否已在TCP Java套接字中接收_Java_Sockets_Networking_Tcp - Fatal编程技术网

是否有方法确定数据是否已在TCP Java套接字中接收

是否有方法确定数据是否已在TCP Java套接字中接收,java,sockets,networking,tcp,Java,Sockets,Networking,Tcp,你们中有人知道有没有办法判断通过JavaTCP套接字发送的数据是否已被接收 TCP协议应该将最后确认的字节存储在某个地方,但我不知道是否可以从Java套接字获得这些信息 提前感谢。不,在Java中您不知道这一点,并且能够看到最后确认的tcp消息也没有帮助,因为您写入套接字的内容可以在一个或多个消息/包中发送 您需要实现一个应用程序协议,在该协议中接收器发送ack。嗯,这是不方便的。上次确认的字节有什么问题?如果我监视通过流发送的数据,并且知道最后确认的字节,我就知道数据已经到达(与所需的数据包数

你们中有人知道有没有办法判断通过JavaTCP套接字发送的数据是否已被接收

TCP协议应该将最后确认的字节存储在某个地方,但我不知道是否可以从Java套接字获得这些信息


提前感谢。

不,在Java中您不知道这一点,并且能够看到最后确认的tcp消息也没有帮助,因为您写入套接字的内容可以在一个或多个消息/包中发送


您需要实现一个应用程序协议,在该协议中接收器发送ack。

嗯,这是不方便的。上次确认的字节有什么问题?如果我监视通过流发送的数据,并且知道最后确认的字节,我就知道数据已经到达(与所需的数据包数量无关)。实现应用程序协议会增加太多的开销,不幸的是,我在应用程序中负担不起。嗯?无法实现应用程序协议?你要送什么?我从未见过任何人在没有应用程序协议的情况下发送数据,即使它是一个简单的协议。ack可以是一条短消息,例如“OK#bytes received”。顺便说一句,我无法在POSIX socket API中找到使用TCP套接字在封底下传输的最后一个数据包的ID。TCP故意对您隐藏该信息…