Overførsel af bytes vha Datagram
Jeg har en fil test.txt, som jegforsøger at overføre via udp (datagram).
På serversiden specificerer jeg en
InetAddress, DatagramSocket og en
DatagramPacket, der kan modtage vha receive.
Så kan jeg få modtageradressen.
På clientsiden det samme, bare send
istedet for receive.Jeg bruger localhost
Jeg specificerer endnu en DatagramPacket
til at sende et datagram til client,
min kode på serversiden ser nogenlunde således ud:
public void put_file()
{
try
{
DatagramSocket dSocket=new DatagramSocket(251);
System.out.println("Waiting for client requests");
while(true)
{
System.out.println("Client contacted me");
System.out.println("receiving client request");
inPacket=new DatagramPacket(buffer, buffer.length);
dSocket.receive(inPacket);
addr=inPacket.getAddress(); // addr for reply packet
inFile=new BufferedReader(new FileReader("test.txt"));
buffersize=inFile.read();
System.out.println("handling request");
outPacket=new DatagramPacket(buffer,buffer.length,addr,250);
System.out.println("sending packet to client");
dSocket.send(outPacket);
}
}
catch (Exception e)
{ System.err.println("Closing DatagramSocket");
if (dSocket!=null)
dSocket.close();
}
}
jeg kan ikke se fejlen helt
Hjælp?
på klientsiden:
public void get_file()
{
try {
FileOutputStream fos=new FileOutputStream("testen.txt");
// Create datagram socket
DatagramSocket dSocket=new DatagramSocket(250);
// Get inet addr of server
InetAddress addr=InetAddress.getByName(myHost);
outPacket=new DatagramPacket(buffer, buffer.length, addr, 251);
System.out.println("sending outpacket on datagram socket");
dSocket.send(outPacket);
System.out.println("creating inpacket");
inPacket = new DatagramPacket(buffer, buffer.length);
System.out.println("receiving inpacket on datagramsocket");
dSocket.receive(inPacket);
buffer = inPacket.getData();
fos.write(buffer, 0, buffer.length);
System.out.println("writing file to disk");
fos.close();
}
catch(Exception e)
{ System.err.println(e); }
}
