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
Java 如何从服务器获取客户端套接字的确认?_Java_Sockets_Tcp_Tcpclient_Apache Mina - Fatal编程技术网

Java 如何从服务器获取客户端套接字的确认?

Java 如何从服务器获取客户端套接字的确认?,java,sockets,tcp,tcpclient,apache-mina,Java,Sockets,Tcp,Tcpclient,Apache Mina,我有一个客户端套接字,它向服务器发送消息。每当服务器收到消息时,我想在客户端获得确认。有没有可能得到确认。我使用ApacheMina开发了客户端。提前感谢。TCP中没有消息,只有一个字节流。有一个内部的ACK机制,可以跟踪有多少流被正确接收,但应用程序无法使用它。如果您需要服务器的确认,您的服务器必须发送确认。谢谢您的回答EJP。我不能在服务器端写,因为它是网关。java中是否有任何方法可以显示内部ACK机制,或者我们可以在传输层编写任何程序来获得该ACK。@正如我已经说过的,应用程序无法使用该

我有一个客户端套接字,它向服务器发送消息。每当服务器收到消息时,我想在客户端获得确认。有没有可能得到确认。我使用ApacheMina开发了客户端。提前感谢。

TCP中没有消息,只有一个字节流。有一个内部的ACK机制,可以跟踪有多少流被正确接收,但应用程序无法使用它。如果您需要服务器的确认,您的服务器必须发送确认。

谢谢您的回答EJP。我不能在服务器端写,因为它是网关。java中是否有任何方法可以显示内部ACK机制,或者我们可以在传输层编写任何程序来获得该ACK。@正如我已经说过的,应用程序无法使用该方法。请注意,即使知道远程计算机是否确认了数据,也不会告诉您服务器应用程序“何时”或“是否”收到该数据。尽管如此,我一直认为没有
ioctl()
来获取这些信息是一件很遗憾的事情。@BrianWhite难道没有一个ioctl()来告诉你发送缓冲区中有多少空间吗?这间接地告诉您ACK机制在哪里,但您确实需要一个回调机制或一个关于ACK的select()事件,或者一个机制使send()阻塞,直到ACK进入,但是您当然会丢失TCP窗口。这个其他问题可能有一些相关信息: