Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/340.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通过UDP读取文件_Java_Udpclient - Fatal编程技术网

java通过UDP读取文件

java通过UDP读取文件,java,udpclient,Java,Udpclient,我有一个UDP服务器读取图像,包括UDP和TCP。 协议格式为: 长度 身份证件 有效载荷 当我试图读取有效负载或图像本身时,我可以通过使用标志来完成,但这是不可取的。如何停止以UDP读取文件(或知道何时没有更多数据)并写入文件? 注释的代码,但使用标志,我不想使用标志,因为其他客户端可能会连接,只会传输原始图像文件 谢谢 while (true) { socket.receive(receivePacket); /* if (receivePacket

我有一个UDP服务器读取图像,包括UDP和TCP。 协议格式为: 长度 身份证件 有效载荷

当我试图读取有效负载或图像本身时,我可以通过使用标志来完成,但这是不可取的。如何停止以UDP读取文件(或知道何时没有更多数据)并写入文件? 注释的代码,但使用标志,我不想使用标志,因为其他客户端可能会连接,只会传输原始图像文件

谢谢

while (true) {
       socket.receive(receivePacket);
      /* 
       if (receivePacket.getLength() <= 8) {
           cmd = new String(receivePacket.getData(), 0,receivePacket.getLength());
           if (cmd.equals("END_FILE")) {
               System.out.println("UDP ServerThread() Command: " +  cmd);
               break;
           }
       }*/


       fos.write(receivePacket.getData(), 0, receivePacket.getLength());
   }
while(true){
套接字。接收(接收数据包);
/* 

if(receivePacket.getLength()连接时不能发送长度为的初始数据包吗?UDP不适用于此类应用程序。最好使用TCP。我有文件的长度,在初始消息中,我如何使用它从socket.receive读取。您必须确保能够处理丢失、碎片和无序的数据包。您需要包含自己的数据包头o确定这一点,您可以包括一个标志,表明它是文件的结尾。