Networks Programming and Applications Homework

profiled7dcq9
lab5.docx

Net341d second 37-38

Lab5 ( TCP socket )

Open NetBeans and do the following:

1. Create a new project named UdpClient

2. Import java.net.* and java.io.*

3. Inside the main method type these statements:

public static void main(String args[])

{

DatagramSocket sock = null;

int port = 7777;

String s;

BufferedReader cin = new BufferedReader(new InputStreamReader(System.in));

try

{

sock = new DatagramSocket();

InetAddress host = InetAddress.getByName("localhost");

while(true)

{

//take input and send the packet

echo("Enter message to send : ");

s = (String)cin.readLine();

byte[] b = s.getBytes();

DatagramPacket dp = new DatagramPacket(b , b.length , host , port);

sock.send(dp);

//now receive reply

//buffer to receive incoming data

byte[] buffer = new byte[65536];

DatagramPacket reply = new DatagramPacket(buffer, buffer.length);

sock.receive(reply);

byte[] data = reply.getData();

s = new String(data, 0, reply.getLength());

//echo the details of incoming data - client ip : client port - client message

echo(reply.getAddress().getHostAddress() + " : " + reply.getPort() + " - " + s);

}

}

catch(IOException e)

{

System.err.println("IOException " + e);

}

}

//simple function to echo data to terminal

public static void echo(String msg)

{

System.out.println(msg);

}

}

4. Create a new project named UdpServer

5. Import java.net.* and java.io.*

6. Inside the main method type these statements:

public static void main(String args[])

{

DatagramSocket sock = null;

try

{

//1. creating a server socket, parameter is local port number

sock = new DatagramSocket(7777);

//buffer to receive incoming data

byte[] buffer = new byte[65536];

DatagramPacket incoming = new DatagramPacket(buffer, buffer.length);

//2. Wait for an incoming data

echo("Server socket created. Waiting for incoming data...");

//communication loop

while(true)

{

sock.receive(incoming);

byte[] data = incoming.getData();

String s = new String(data, 0, incoming.getLength());

//echo the details of incoming data - client ip : client port - client message

echo(incoming.getAddress().getHostAddress() + " : " + incoming.getPort() + " - " + s);

s = "OK : " + s;

DatagramPacket dp = new DatagramPacket(s.getBytes() , s.getBytes().length , incoming.getAddress() , incoming.getPort());

sock.send(dp);

}

}

catch(IOException e)

{

System.err.println("IOException " + e);

}

}

//simple function to echo data to terminal

public static void echo(String msg)

{

System.out.println(msg);

}

}

7. Run UdpClient and UdpServer