In this program we have a server(noide.java) and a client(noides.java)
This is the server or the broadcaster
import java.nio.*;
import java.nio.channels.*;
import java.io.*;
import java.net.*;
class noide{
public static int serverPort = 998;
public static int clientPort = 999;
public static int buffer_size = 400000;
public static DatagramSocket ds;
public static byte buffer[] = new byte[buffer_size];
public static void main(String args[])throws Exception,IOException{
FileInputStream fln;
FileChannel fchan;
BufferedReader g = new BufferedReader(new InputStreamReader(System.in));
String bh = g.readLine();
long fsize;
ByteBuffer mbuf;
ds = new DatagramSocket(serverPort);
fln = new FileInputStream(bh);
fchan = fln.getChannel();
fsize = fchan.size();
System.out.println( fsize);
mbuf = ByteBuffer.allocate((int) fsize);
fchan.read(mbuf);
int hp;
mbuf.rewind();
for( hp = 0;hp<fsize;hp++)
buffer[hp] = mbuf.get();
ds.send(new DatagramPacket(buffer,hp,InetAddress.getLocalHost(),clientPort));
fchan.close();
fln.close();
}
}
As you can see it sends it to the LocalHost(127.0.0.1).It can be changed to work over LAN or over the Internet(port-forwarding required).The client :
import java.nio.*;
import java.nio.channels.*;
import java.io.*;
import java.net.*;
class noides{
public static int serverPort = 998;
public static int clientPort = 999;
public static int buffer_size = 400000;
public static int buffer_siz = 1024;
public static DatagramSocket ds;
public static byte buffer[] = new byte[buffer_size];
public static void main(String args[])throws java.io.IOException{
FileOutputStream fln;
FileChannel fchan;
ByteBuffer mbuf;
ds = new DatagramSocket(clientPort);
fln = new FileOutputStream("tester.txt");
fchan = fln.getChannel();
DatagramPacket p = new DatagramPacket(buffer,buffer.length);
System.out.println("OK");
ds.receive(p);
int hunt = p.getLength();
mbuf = ByteBuffer.allocate(p.getLength());
System.out.println(new String(p.getData(),p.getOffset(),p.getLength()));
mbuf.put(p.getData(),p.getOffset(),p.getLength());
mbuf.rewind();
fchan.write(mbuf);
fchan.close();
fln.close();
}
}
The client must be running before the server is started.
It is saved in tester.txt.
Tags:-java program,datagram packet,datagram socket,datagram socket over LAN,server client in Datagram,send a file with Datagram.
4174F193
ReplyDeleteesçort bayan çorum
esçort kayseri
erzincan esçort
esçort mersin
keşan esçort
kayseri esçort
araban esçort
esçort karaman
esat esçort
5E932CD3
ReplyDeleteAvanos
Urla
Foça
Esat
Adapazarı
Dilovası
Meram
Ergani
Silivri