title: Use datagrams in java to send video/audio from client to server?
body: <p>Hey everyone, I'm having a bit of a problem with UDP and Datagrams.  I'm supposed to make a server that will get a request from the client to send a file in the same directory.  The UDP Server will then get this file (a video), put it into a datagram and send it.  I think I know how to do it, but I can't put the file in the datagram. I'm putting it in Binary form, so keep that in mind.  </p>
  
  <p>Here's my code so far:
  edit: This is the server by the way, and I keep having trouble with BufferedInputReader and OutputReader, so keep that in mind :)</p>
  
  <pre><code>   Scanner inFromUser = new Scanner(System.in);
      int port = 12345;
      DatagramSocket server = new DatagramSocket(port);
    // Read name of file supplied by client (must be a line of text):
      Scanner in = new Scanner(new DataInputStream(server.getInputStream()));
      String filename = in.nextLine();
      DatagramSocket request = server.accept();
  
  
      // Create buffer, then we're ready to go:
      // Puts file into binary form
          BufferedInputStream inbinary = 
                  new BufferedInputStream(new FileInputStream("poop.txt"));
     // Outputs the binary form
          BufferedOutputStream outbinary = 
                  new BufferedOutputStream(request.getOutputStream());
  
      int numbytes;
      int countblocks = 0;
      int countbytes = 0;
      byte[] buf = new byte[1024];
      DatagramPacket packet = new DatagramPacket(buf, buf.length, port);
      server.receive(packet);
  
      while ((numbytes = inbinary.read(buf,0,1024)) &gt;= 0)
      {
       // receive packet from client, telling it to send the video file
       server.receive(packet);
       InetAddress address = packet.getAddress();
       packet = new DatagramPacket(buf, buf.length, address, port);
       server.send(packet);
       countblocks++;          // keep statistics on file size
       countbytes += numbytes;
       outbinary.write(buf,0,numbytes); // write buffer to socket
      }
        outbinary.flush(); // FLUSH THE BUFFER
        server.close(); // done with the socket
        System.out.println(countblocks + " were read; " + countbytes + " bytes");
      }
    }
  </code></pre>