Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ubuntu.com
- Cyclesheet 1
- 2) Write a Java program to run the basic networking commands
- import java.net.*;
- import java.util.*;
- import java.io.*;
- public class command
- {
- public static void main(String args[])
- throws Exception
- {
- BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
- System.out.println("enter command:");
- String s=br.readLine();
- Process p=Runtime.getRuntime().exec(s);
- p.waitFor();
- BufferedReader reader=new BufferedReader(new InputStreamReader(p.getInputStream()));
- String line=reader.readLine();
- while(line!=null)
- {
- System.out.println(line);
- line=reader.readLine();0
- }
- System.out.println("done!");
- }
- }
- 3) Write a program to display the name of the computer and its IP address that you are currently working on.
- import java.net.*;
- import java.io.*;
- public class cm
- {
- public static void main(String args[])
- {
- try
- {
- BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
- System.out.println("Enter the url which you want to find ip address and host name");
- String str=br.readLine();
- InetAddress add=InetAddress.getByName(str);
- System.out.println("Local Host Information");
- System.out.println("Host Name:"+add.getHostName());
- System.out.println("IP address:"+add.getHostAddress());
- }
- catch(Exception e)
- {
- System.out.println(e);
- }
- }
- 4) Write a program to print the IP address of “www.google.com” all IP addresses of “www.microsoft.com”.
- import java.net.*;
- import java.io.*;
- public class ip
- {
- public static void main(String args[])
- throws UnknownHostException {
- System.out.println(InetAddress.getByName("www.google.com"));
- InetAddress[] inetAddresses=InetAddress.getAllByName("www.microsoft.com");
- for(InetAddress ipAddress:inetAddresses)
- {
- System.out.println(ipAddress);
- }
- }
- }
- 5) Write a program to print all Network Interfaces of “localhost”.
- import java.net.*;
- import java.util.*;
- import java.io.*;
- public class ni
- {
- public static void main(String args[]) throws UnknownHostException,SocketException
- {
- Enumeration<NetworkInterface> interfaces = NetworkInterface.getNetworkInterfaces();
- if(interfaces==null)
- {
- System.out.println("No network interfaces found");
- }
- else
- {
- for(NetworkInterface netIf:Collections.list(interfaces))
- {
- System.out.println("Display Name:" + netIf.getDisplayName());
- System.out.println("Name : " + netIf.getName());
- System.out.println();
- }
- }
- }
- }
- 6) Implement the simple version of “nslookup” utility.
- import java.net.*;
- import java.io.*;
- import java.util.*;
- public class nslook
- {
- public static void main(String args[]) throws Exception
- {
- BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
- System.out.println("Enter the hostname");
- String cmd=br.readLine();
- Process p=Runtime.getRuntime().exec("nslookup "+cmd);
- p.waitFor();
- BufferedReader reader=new BufferedReader(new InputStreamReader(p.getInputStream()));
- String line=reader.readLine();
- while(line!=null)
- {
- System.out.println(line);
- line=reader.readLine();
- }
- System.out.println("Done");
- }
- }
- 7) Write a program to download the contents associated with a HTTP URL and save it in a file.
- import java.io.*;
- import java.net.*;
- public class GetJavaUrl
- {
- public static void main(String[] args)
- {
- URL u;
- InputStream is=null;
- DataInputStream dis;
- String s;
- try
- {
- u=new URL("ftp://10.30.2.53");
- is=u.openStream();
- dis = new DataInputStream(new BufferedInputStream(is));
- while((s=dis.readLine())!=null)
- {
- System.out.println(s);
- }
- }
- catch(MalformedURLException mue)
- {
- System.out.println("404: Error NOT FOUND");
- mue.printStackTrace();
- System.exit(1);
- }
- catch(IOException ioe)
- {
- System.out.println("404: Error NOT FOUND");
- ioe.printStackTrace();
- System.exit(1);
- }
- finally
- {
- try
- {
- is.close();
- }
- catch(IOException ioe)
- {
- }
- }
- }
- }
- ITE 304 Computer Networks Lab
- Cycle sheet-2
- 1. Write a program to list all ports hosting a TCP server in a specified host and identify available servers in well-known ports?
- 2. Implement echo server and client in java using TCP sockets.
- 3. Implement date server and client in java using TCP sockets.
- 4. Write a program to implement a simple message transfer from client to server process using TCP/IP.
- 5. Develop a TCP client/server application for transferring a text file from client to server?
- 6. Implement a chat server and client in java using TCP sockets.
- 7. Implement a TCP based server program to authenticate the client’s User Name and Password. The validity of the client must be sent as the reply message to the client and display it on the standard output.
- 8. Find the physical address of a host when its logical address is known (ARP protocol) using TCP/IP.
- 9. Find the logical address of a host when its physical address is known (RARP protocol) using TCP/IP.
- 10. Implement Domain Name System (DNS) using TCP/IP
- 11. Implement a TCP/IP based Server program in Java to compute the factorial of a number (can contain arbitrary number of digits). Write a client program to test the working of the same.
- 12. Find the class of the IP address using TCP/IP.
- Solutions
- Q1 Write a program to list all ports hosting a TCP server in a specified host and identify available servers in well-known ports?
- import java.net.Socket;
- import java.net.*;
- public class A {
- public static void main(String[] args) throws Exception{
- try {
- for(int i=0;i<1024;i++)
- {
- Socket s=new Socket("localhost",i);
- System.out.println(i);
- }
- }
- catch(Exception e)
- {
- System.out.println(e);
- }
- }
- }
- Q2 Implement echo server and client in java using TCP sockets.
- server
- import java.io.*;
- import java.net.*;
- public class EchoServer
- {
- public static void main(String args[]) throws Exception
- {
- try
- {
- int Port;
- BufferedReader Buf =new BufferedReader(new
- InputStreamReader(System.in));
- System.out.print(" Enter the Port Address : " );
- Port=Integer.parseInt(Buf.readLine());
- ServerSocket sok =new ServerSocket(Port);
- System.out.println(" Server is Ready To Receive a Message. ");
- System.out.println(" Waiting ..... ");
- Socket so=sok.accept();
- if(so.isConnected()==true)
- System.out.println(" Client Socket is Connected Succecfully. ");
- InputStream in=so.getInputStream();
- OutputStream ou=so.getOutputStream();
- PrintWriter pr=new PrintWriter(ou);
- BufferedReader buf=new BufferedReader(new
- InputStreamReader(in));
- String str=buf.readLine();
- System.out.println(" Message Received From Client : " + str);
- System.out.println(" This Message is Forwarded To Client. ");
- pr.println(str);
- pr.flush();
- }
- catch(Exception e)
- {
- System.out.println(" Error : " + e.getMessage());
- }
- }
- }
- client
- import java.io.*;
- import java.net.*;
- public class EchoClient
- {
- public static void main(String args[]) throws Exception
- {
- try {
- int Port;
- BufferedReader Buf =new BufferedReader(new
- InputStreamReader(System.in));
- System.out.print(" Enter the Port Address : " );
- Port=Integer.parseInt(Buf.readLine());
- Socket sok=new Socket("localhost",Port);
- if(sok.isConnected()==true)
- System.out.println(" Server Socket is Connected Succecfully. ");
- InputStream in=sok.getInputStream();
- OutputStream ou=sok.getOutputStream();
- PrintWriter pr=new PrintWriter(ou);
- BufferedReader buf1=new BufferedReader(new
- InputStreamReader(System.in));
- BufferedReader buf2=new BufferedReader(new
- InputStreamReader(in));
- String str1,str2;
- System.out.print(" Enter the Message : ");
- str1=buf1.readLine();
- pr.println(str1);
- pr.flush();
- System.out.println(" Message Send Successfully. ");
- str2=buf2.readLine();
- System.out.println(" Message From Server : " + str2);
- }
- catch(Exception e)
- {
- System.out.println(" Error : " + e.getMessage());
- }
- }
- }
- Q3 Implement date server and client in java using TCP sockets.
- client
- import java.io.*;
- import java.net.*;
- class DateClient
- {
- public static void main(String args[]) throws Exception
- {
- Socket soc=new Socket(InetAddress.getLocalHost(),5217);
- BufferedReader in=new BufferedReader(new InputStreamReader( soc.getInputStream() ) );
- System.out.println(in.readLine());
- }
- }
- server
- import java.net.*;
- import java.io.*;
- import java.util.*;
- class DateServer
- {
- public static void main(String args[]) throws Exception
- {
- ServerSocket s=new ServerSocket(5217);
- while(true)
- {
- System.out.println("Waiting For Connection ...");
- Socket soc=s.accept();
- DataOutputStream out=new DataOutputStream(soc.getOutputStream());
- out.writeBytes("Server Date" + (new Date()).toString() + "\n");
- out.close();
- soc.close();
- }
- }
- }
- Q4 , Q6 Write a program to implement a simple message transfer from client to server process using TCP/IP.
- SERVER
- import java.io.*;
- import java.io.BufferedReader;
- import java.io.InputStream;
- import java.io.InputStreamReader;
- import java.io.OutputStream;
- import java.io.PrintWriter;
- import java.net.*;
- public class GossipServer
- {
- public static void main(String[] args) throws Exception
- {
- ServerSocket sersock = new ServerSocket(3000);
- System.out.println("Server ready for chatting");
- Socket sock = sersock.accept( );
- // reading from keyboard (keyRead object)
- BufferedReader keyRead = new BufferedReader(new InputStreamReader(System.in));
- // sending to client (pwrite object)
- OutputStream ostream = sock.getOutputStream();
- PrintWriter pwrite = new PrintWriter(ostream, true);
- // receiving from server ( receiveRead object)
- InputStream istream = sock.getInputStream();
- BufferedReader receiveRead = new BufferedReader(new InputStreamReader(istream));
- String receiveMessage, sendMessage;
- while(true)
- {
- if((receiveMessage = receiveRead.readLine()) != null)
- {
- System.out.println(receiveMessage);
- }
- sendMessage = keyRead.readLine();
- pwrite.println(sendMessage);
- pwrite.flush();
- }
- }
- }
- 5 Develop a TCP client/server application for transferring a text file from client to server?
- Server:
- import java.io.BufferedInputStream;
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.OutputStream;
- import java.net.InetAddress;
- import java.net.ServerSocket;
- import java.net.Socket;
- public class FileTransferServer {
- public static void main(String[] args) throws Exception {
- //Initialize Sockets
- ServerSocket ssock = new ServerSocket(5000);
- Socket socket = ssock.accept();
- //The InetAddress specification
- InetAddress IA = InetAddress.getByName("localhost");
- //Specify the file
- File file = new File("/home/likewise-open/VITUNIVERSITY/14bit0297/DateServer.java");
- FileInputStream fis = new FileInputStream(file);
- BufferedInputStream bis = new BufferedInputStream(fis);
- //Get socket's output stream
- OutputStream os = socket.getOutputStream();
- //Read File Contents into contents array
- byte[] contents;
- long fileLength = file.length();
- long current = 0;
- long start = System.nanoTime();
- while(current!=fileLength){
- int size = 10000;
- if(fileLength - current >= size)
- current += size;
- else{
- size = (int)(fileLength - current);
- current = fileLength;
- }
- contents = new byte[size];
- bis.read(contents, 0, size);
- os.write(contents);
- System.out.print("Sending file ... "+(current*100)/fileLength+"% complete!");
- }
- os.flush();
- //File transfer done. Close the socket connection!
- socket.close();
- ssock.close();
- System.out.println("File sent succesfully!");
- }
- }
- Client:
- import java.io.BufferedOutputStream;
- import java.io.FileOutputStream;
- import java.io.InputStream;
- import java.net.InetAddress;
- import java.net.Socket;
- public class FileTransferClient {
- public static void main(String[] args) throws Exception{
- //Initialize socket
- Socket socket = new Socket(InetAddress.getByName("localhost"), 5000);
- byte[] contents = new byte[10000];
- //Initialize the FileOutputStream to the output file's full path.
- FileOutputStream fos = new FileOutputStream("e:\\data2.bin");
- BufferedOutputStream bos = new BufferedOutputStream(fos);
- InputStream is = socket.getInputStream();
- //No of bytes read in one read() call
- int bytesRead = 0;
- while((bytesRead=is.read(contents))!=-1)
- bos.write(contents, 0, bytesRead);
- bos.flush();
- socket.close();
- System.out.println("File saved successfully!");
- }
- }
- OUTPUT
- CLINET
- import java.io.*;
- import java.net.*;
- public class GossipClient
- {
- public static void main(String[] args) throws Exception
- {
- Socket sock = new Socket("127.0.0.1", 3000);
- // reading from keyboard (keyRead object)
- BufferedReader keyRead = new BufferedReader(new InputStreamReader(System.in));
- // sending to client (pwrite object)
- OutputStream ostream = sock.getOutputStream();
- PrintWriter pwrite = new PrintWriter(ostream, true);
- // receiving from server ( receiveRead object)
- InputStream istream = sock.getInputStream();
- BufferedReader receiveRead = new BufferedReader(new InputStreamReader(istream));
- System.out.println("Start the chitchat, type and press Enter key");
- String receiveMessage, sendMessage;
- while(true)
- {
- sendMessage = keyRead.readLine(); // keyboard reading
- pwrite.println(sendMessage); // sending to server
- pwrite.flush(); // flush the data
- if((receiveMessage = receiveRead.readLine()) != null) //receive from server
- {
- System.out.println(receiveMessage); // displaying at DOS prompt
- }
- }
- }
- }
- Q7 Implement a TCP based server program to authenticate the client’s User Name and Password. The validity of the client must be sent as the reply message to the client and display it on the standard output.
- CLIENT
- import java.io.*;
- import java.net.*;
- class TCPClientAuth {
- public static void main(String argv[]) throws Exception
- {
- String username;
- String password;
- String auth;
- BufferedReader inFromUser =
- new BufferedReader(new InputStreamReader(System.in));
- Socket clientSocket = new Socket("localhost", 6789);
- DataOutputStream outToServer =
- new DataOutputStream(clientSocket.getOutputStream());
- BufferedReader inFromServer =
- new BufferedReader(new
- InputStreamReader(clientSocket.getInputStream()));
- System.out.print("Username :");
- username = inFromUser.readLine();
- System.out.print("Password :");
- password = inFromUser.readLine();
- outToServer.writeBytes(username + '\n' + password + '\n' );
- auth = inFromServer.readLine();
- System.out.println("FROM SERVER: " + auth);
- clientSocket.close();
- }
- }
- SERVER
- import java.io.*;
- import java.net.*;
- class TCPServerAuth {
- public static void main(String argv[]) throws Exception
- {
- String username;
- String password;
- String auth;
- ServerSocket welcomeSocket = new ServerSocket(6789);
- while(true) {
- Socket connectionSocket = welcomeSocket.accept();
- BufferedReader inFromClient =
- new BufferedReader(new
- InputStreamReader(connectionSocket.getInputStream()));
- DataOutputStream outToClient =
- new DataOutputStream(connectionSocket.getOutputStream());
- username = inFromClient.readLine();
- password = inFromClient.readLine();
- if (username.equals("Admin")){
- if (password.equals("root")){
- auth = "Login Successful!";
- }else{
- auth = "Wrong Password";
- }
- }else{
- auth = "Wrong Username";
- }
- outToClient.writeBytes(auth);
- connectionSocket.close();
- }
- }
- }
- Q8.Find the physical address of a host when its logical address is known (ARP protocol) using TCP/IP.
- CLIENT:
- import java.io.*;
- import java.util.*;
- import java.net.*;
- public class q8client
- {
- public static void main(String[] args)
- {
- try
- {
- Socket s = new Socket("localhost",5555);
- BufferedReader b = new BufferedReader(new InputStreamReader(System.in));
- DataOutputStream dout = new DataOutputStream(s.getOutputStream());
- DataInputStream din = new DataInputStream(s.getInputStream());
- System.out.println("Enter the logical address: ");
- String str = b.readLine();
- dout.writeBytes(str + "\n");
- String str1 = din.readLine();
- System.out.println("Physical Address of str: " + str1);
- s.close();
- }
- catch (Exception e)
- {
- }
- }}
- SERVER:
- import java.io.*;
- import java.util.*;
- import java.net.*;
- public class q8server
- {
- public static void main(String[] args)
- {
- try
- {
- ServerSocket ss = new ServerSocket(5555);
- Socket s = ss.accept();
- BufferedReader b = new BufferedReader(new InputStreamReader(System.in));
- DataOutputStream dout = new DataOutputStream(s.getOutputStream());
- DataInputStream din = new DataInputStream(s.getInputStream());
- String str = din.readLine();
- String logical[] = {"172.16.27.34","195.24.54.204"};
- String physical[] = {"8E:AE:08:AA","0A:78:6C:AD"};
- for(int i=0;i<logical.length;i++)
- {
- if (str.equals(logical[i]))
- {
- dout.writeBytes(physical[i] + "\n");
- break;
- }
- }
- s.close();
- }
- catch (Exception e)
- {
- }
- }
- }
- OUTPUT:
- =====================================================
- Q9.Find the logical address of a host when its physical address is known (RARP protocol) using TCP/IP.
- CLIENT:
- import java.io.*;
- import java.net.*;
- class TCPLogClient {
- public static void main(String argv[]) throws Exception
- {
- String logicAdd;
- String phyAdd;
- BufferedReader inFromUser =
- new BufferedReader(new InputStreamReader(System.in));
- Socket clientSocket = new Socket("localhost", 6789);
- DataOutputStream outToServer =
- new DataOutputStream(clientSocket.getOutputStream());
- BufferedReader inFromServer =
- new BufferedReader(new
- InputStreamReader(clientSocket.getInputStream()));
- System.out.println("Enter Physical address of host");
- phyAdd = inFromUser.readLine();
- outToServer.writeBytes(phyAdd + '\n');
- logicAdd = inFromServer.readLine();
- System.out.println("FROM SERVER: Logical Address " + logicAdd);
- clientSocket.close();
- }
- }
- SERVER:
- import java.io.*;
- import java.net.*;
- class TCPLogServer {
- public static void main(String argv[]) throws Exception
- {
- String phyAdd;
- ServerSocket welcomeSocket = new ServerSocket(6789);
- while(true) {
- Socket connectionSocket = welcomeSocket.accept();
- BufferedReader inFromClient =
- new BufferedReader(new
- InputStreamReader(connectionSocket.getInputStream()));
- String logical[] = {"172.16.27.34","195.24.54.204", "10.10.137.1"};
- String physical[] = {"8E:AE:08:AA","0A:78:6C:AD", "d4:6d:50:84:db:c8"};
- DataOutputStream outToClient =
- new DataOutputStream(connectionSocket.getOutputStream());
- phyAdd = inFromClient.readLine();
- for(int i = 0; i < physical.length; i++)
- {
- if (phyAdd.equals(physical[i]))
- {
- outToClient.writeBytes(logical[i] + "\n");
- connectionSocket.close();
- }
- }
- }
- }
- }
- =======================================
- 10.Implement Domain Name System (DNS) using TCP/IP
- SERVER:
- import java.io.*;
- import java.net.*;
- class TCPLoServer {
- public static void main(String argv[]) throws Exception
- {
- String D;
- ServerSocket welcomeSocket = new ServerSocket(6789);
- while(true) {
- Socket connectionSocket = welcomeSocket.accept();
- BufferedReader inFromClient =
- new BufferedReader(new
- InputStreamReader(connectionSocket.getInputStream()));
- String hostaddr[] = {"172.16.27.34","195.24.54.204", "10.10.137.1"};
- String DNS[] = {"www.google.com","www.facebook.com", "www.vit.ac.in"};
- DataOutputStream outToClient =
- new DataOutputStream(connectionSocket.getOutputStream());
- D = inFromClient.readLine();
- for(int i = 0; i < hostaddr.length; i++)
- {
- if (D.equals(hostaddr[i]))
- {
- outToClient.writeBytes(DNS[i] + "\n");
- connectionSocket.close();
- }
- }
- }
- }
- }
- CLIENT:
- import java.io.*;
- import java.net.*;
- class TCPLoClient {
- public static void main(String argv[]) throws Exception
- {
- String hostaddr;
- String DNS;
- BufferedReader inFromUser =
- new BufferedReader(new InputStreamReader(System.in));
- Socket clientSocket = new Socket("localhost", 6789);
- DataOutputStream outToServer =
- new DataOutputStream(clientSocket.getOutputStream());
- BufferedReader inFromServer =
- new BufferedReader(new
- InputStreamReader(clientSocket.getInputStream()));
- System.out.println("Enter IP address of host");
- DNS = inFromUser.readLine();
- outToServer.writeBytes(DNS + '\n');
- hostaddr = inFromServer.readLine();
- System.out.println("FROM SERVER: Logical Address " + hostaddr);
- clientSocket.close();
- }
- }
- *************************************************
- 11.Implement a TCP/IP based Server program in Java to compute the factorial of a number (can contain arbitrary number of digits). Write a client program to test the working of the same.
- CLIENT:
- import java.io.*;
- import java.net.*;
- class client {
- public static void main(String argv[]) throws Exception
- {
- String sentence;
- String modifiedSentence;
- BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in));
- Socket clientSocket = new Socket("localhost", 2222);
- DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream());
- BufferedReader inFromServer = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
- System.out.println("Enter a number - ");
- sentence = inFromUser.readLine();
- outToServer.writeBytes(sentence + '\n');
- modifiedSentence = inFromServer.readLine();
- System.out.println ("Factorial: " + modifiedSentence );
- clientSocket.close();
- }
- }
- SREVER:
- import java.io.*;
- import java.net.*;
- class serv {
- public static void main(String argv[]) throws Exception
- {
- String clientSentence;
- String capitalizedSentence;
- ServerSocket welcomeSocket = new ServerSocket(2222);
- Socket connectionSocket = welcomeSocket.accept();
- BufferedReader inFromClient = new BufferedReader(new InputStreamReader(connectionSocket.getInputStream()));
- DataOutputStream outToClient = new DataOutputStream (connectionSocket.getOutputStream());
- clientSentence = inFromClient.readLine();
- int num = Integer.parseInt(clientSentence);
- int fact=1;
- for(int i=1;i<=num;i++)
- fact=fact*i;
- System.out.println("Factorial : "+fact);
- capitalizedSentence = String.valueOf(fact);
- //capitalizedSentence = clientSentence.toUpperCase() + '\n';
- outToClient.writeBytes(capitalizedSentence);
- }
- }
- ******************************************************
- Ques12.Find the class of the IP address using TCP/IP.
- import java.io.*;
- import java.net.*;
- class TCPIpclassServer {
- public static void main(String argv[]) throws Exception
- {
- String ip;
- int fbyte;
- String ipclass = "Invalid";
- ServerSocket welcomeSocket = new ServerSocket(6789);
- while(true) {
- Socket connectionSocket = welcomeSocket.accept();
- BufferedReader inFromClient =
- new BufferedReader(new
- InputStreamReader(connectionSocket.getInputStream()));
- DataOutputStream outToClient =
- new DataOutputStream(connectionSocket.getOutputStream());
- ip = inFromClient.readLine();
- int index;
- index = ip.indexOf(".");
- ip = ip.substring(0, index);
- fbyte = Integer.parseInt(ip);
- if (fbyte >= 0 && fbyte <= 127)
- ipclass = "Class A";
- else if (fbyte >= 128 && fbyte <= 191)
- ipclass = "Class B";
- else if (fbyte >= 192 && fbyte <= 223)
- ipclass = "Class C";
- else if (fbyte >= 224 && fbyte <= 239)
- ipclass = "Class D";
- else if (fbyte >= 240 && fbyte <= 255)
- ipclass = "Class E";
- outToClient.writeBytes(ipclass + "\n");
- connectionSocket.close();
- }
- }
- }
- //client
- import java.io.*;
- import java.net.*;
- class TCPIpclassClient {
- public static void main(String argv[]) throws Exception
- {
- String ip;
- String ipclass;
- BufferedReader inFromUser =
- new BufferedReader(new InputStreamReader(System.in));
- Socket clientSocket = new Socket("localhost", 6789);
- DataOutputStream outToServer =
- new DataOutputStream(clientSocket.getOutputStream());
- BufferedReader inFromServer =
- new BufferedReader(new
- InputStreamReader(clientSocket.getInputStream()));
- System.out.println("Enter an IP address: ");
- ip = inFromUser.readLine();
- outToServer.writeBytes(ip + '\n');
- ipclass = inFromServer.readLine();
- System.out.println("FROM SERVER: Class for IP: "+ ip + " is : " + ipclass);
- clientSocket.close();
- }
- }
- CYCLESHEET 3
- 1. Implement echo server and client in java using UDP sockets.
- 2. Write a program to implement a text based message transfer from client to server process using UDP.
- 3. Implement a chat server and client in java using UDP sockets.
- 4. Implement a DNS server and client in java using UDP sockets.
- 5. Find the logical address of a host when its physical address is known (RARP protocol) using UDP.
- 6. Find the physical address of a host when its logical address is known (ARP protocol) using UDP.
- 7. Implement Client - Server communication to access Date using UDP in Java.
- Solutions :
- 1. Implement echo server and client in java using UDP sockets.
- Code:
- Server:
- import java.io.*;
- import java.net.*;
- class UDPServer {
- public static void main(String args[]) throws Exception
- {
- DatagramSocket serverSocket = new DatagramSocket(9876);
- byte[] receiveData = new byte[1024];
- byte[] sendData = new byte[1024];
- while(true)
- {
- DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
- serverSocket.receive(receivePacket);
- String sentence = new String(receivePacket.getData());
- InetAddress IPAddress = receivePacket.getAddress();
- int port = receivePacket.getPort();
- String capitalizedSentence = sentence.toUpperCase();
- sendData = capitalizedSentence.getBytes();
- DatagramPacket sendPacket =new DatagramPacket(sendData, sendData.length, IPAddress,port);
- serverSocket.send(sendPacket);
- }
- }
- }
- Client
- import java.io.*;
- import java.net.*;
- class UDPClient {
- public static void main(String args[]) throws Exception
- {
- BufferedReader inFromUser =
- new BufferedReader(new InputStreamReader(System.in));
- DatagramSocket clientSocket = new DatagramSocket();
- InetAddress IPAddress = InetAddress.getByName("");
- byte[] sendData = new byte[1024];
- byte[] receiveData = new byte[1024];
- String sentence = inFromUser.readLine();
- sendData = sentence.getBytes();
- DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, 9876);
- clientSocket.send(sendPacket);
- DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
- clientSocket.receive(receivePacket);
- String modifiedSentence = new String(receivePacket.getData());
- System.out.println("FROM SERVER:" + modifiedSentence);
- clientSocket.close();
- }
- }
- Q. Write a program to implement a text based message transfer from client to server process using UDP.
- Code:
- Server:
- import java.net.DatagramPacket;
- import java.net.DatagramSocket;
- public class UDPaServer
- {
- public static void main(String args[])
- {
- int server_port = 1111;
- System.out.println("UDP Server Listening in " + server_port);
- try
- {
- // DatagramSocket created and listening in Port 1111
- DatagramSocket socket = new DatagramSocket(server_port);
- byte[] msgBuffer = new byte[1024];
- // DatagramPacket for receiving the incoming data from UDP Client
- DatagramPacket packet = new DatagramPacket(msgBuffer, msgBuffer.length);
- while (true)
- {
- socket.receive(packet);
- String message = new String(msgBuffer, 0, packet.getLength());
- System.out.println("UDPServer: Message received = " + message);
- packet.setLength(msgBuffer.length);
- }
- }
- catch (Exception e)
- {
- e.printStackTrace();
- System.out.println("Error in getting the Data from UDP Client");
- }
- }
- }
- Client:
- import java.net.DatagramPacket;
- import java.net.DatagramSocket;
- import java.net.InetAddress;
- import java.io.*;
- import java.net.*;
- public class UDPaClient
- {
- public static void main(String args[])
- {
- try
- {
- BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in));
- String server_address = "localhost";
- int server_port = 1111;
- String message = inFromUser.readLine();
- InetAddress address = InetAddress.getByName(server_address);
- DatagramPacket packet = new DatagramPacket(message.getBytes(), message.getBytes().length, address, server_port);
- DatagramSocket socket = new DatagramSocket();
- socket.send(packet);
- System.out.println("UDPClient: Sent data to Server ; Message = " + message);
- socket.close();
- }
- catch (Exception e)
- {
- e.printStackTrace();
- System.out.println("Error in sending the Data to UDP Server");
- }
- }
- }
- **********************************************
- 3.Implement a chat server and client in java using UDP sockets.
- //server
- import java.io.*;
- import java.net.*;
- public class UDPChatServer {
- public static void main(String args[]) throws Exception
- {
- DatagramSocket serverSocket = new DatagramSocket(6789);
- BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in));
- String reply;
- while(true)
- {
- byte[] receiveData = new byte[1024];
- byte[] sendData = new byte[1024];
- DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
- serverSocket.receive(receivePacket);
- String msg = new String(receivePacket.getData());
- System.out.println("Message Received: " + msg);
- InetAddress IPAddress = receivePacket.getAddress();
- int port = receivePacket.getPort();
- System.out.printf("Enter reply: ");
- reply = inFromUser.readLine();
- if (reply.equals("bye"))
- {
- System.out.printf("Exiting Chat!");
- serverSocket.close();
- break;
- }
- sendData = reply.getBytes();
- DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, port);
- serverSocket.send(sendPacket);
- }
- }
- }
- //client
- import java.io.*;
- import java.net.*;
- public class UDPChatClient {
- public static void main(String args[]) throws Exception
- {
- BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in));
- InetAddress IPAddress = InetAddress.getByName("localhost");
- String msg = "";
- while(true)
- {
- byte[] sendData = new byte[1024];
- byte[] receiveData = new byte[1024];
- DatagramSocket clientSocket = new DatagramSocket();
- System.out.printf("Send a Message: ");
- msg = inFromUser.readLine();
- if (msg.equals("bye"))
- {
- System.out.printf("Exiting Chat!");
- clientSocket.close();
- break;
- }
- sendData = msg.getBytes();
- DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, 6789);
- clientSocket.send(sendPacket);
- DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
- clientSocket.receive(receivePacket);
- String reply = new String(receivePacket.getData());
- System.out.println("Reply: " + reply);
- clientSocket.close();
- }
- }
- }
- ****************************************
- 4. Implement a DNS server and client in java using UDP sockets.
- //server
- import java.io.*;
- import java.net.*;
- import java.util.*;
- class Serverdns12
- {
- public static void main(String args[])
- {
- try
- {
- DatagramSocket server=new DatagramSocket(1309);
- while(true)
- {
- byte[] sendbyte=new byte[1024];
- byte[] receivebyte=new byte[1024];
- DatagramPacket receiver=new DatagramPacket(receivebyte,receivebyte.length);
- server.receive(receiver);
- String str=new String(receiver.getData());
- String s=str.trim();
- //System.out.println(s);
- InetAddress addr=receiver.getAddress();
- int port=receiver.getPort();
- String ip[]={"165.165.80.80","165.165.79.1"};
- String name[]={"www.aptitudeguru.com","www.downloadcyclone.blogspot.com"};
- for(int i=0;i<ip.length;i++)
- {
- if(s.equals(ip[i]))
- {
- sendbyte=name[i].getBytes();
- DatagramPacket sender=new DatagramPacket(sendbyte,sendbyte.length,addr,port);
- server.send(sender);
- break;
- }
- else if(s.equals(name[i]))
- {
- sendbyte=ip[i].getBytes();
- DatagramPacket sender=new DatagramPacket(sendbyte,sendbyte.length,addr,port);
- server.send(sender);
- break;
- }
- }
- break;
- }
- }
- catch(Exception e)
- {
- System.out.println(e);
- }
- }
- }
- //client
- import java.io.*;
- import java.net.*;
- import java.util.*;
- class Clientdns12
- {
- public static void main(String args[])
- {
- try
- {
- DatagramSocket client=new DatagramSocket();
- InetAddress addr=InetAddress.getByName("127.0.0.1");
- byte[] sendbyte=new byte[1024];
- byte[] receivebyte=new byte[1024];
- BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
- System.out.println("Enter the DOMAIN NAME or IP adress:");
- String str=in.readLine();
- sendbyte=str.getBytes();
- DatagramPacket sender=new DatagramPacket(sendbyte,sendbyte.length,addr,1309);
- client.send(sender);
- DatagramPacket receiver=new DatagramPacket(receivebyte,receivebyte.length);
- client.receive(receiver);
- String s=new String(receiver.getData());
- System.out.println("IP address or DOMAIN NAME: "+s.trim());
- client.close();
- }
- catch(Exception e)
- {
- System.out.println(e);
- }
- }
- }
- ***************************
- 5. Find the logical address of a host when its physical address is known (RARP protocol) using UDP.
- //SERVER
- import java.io.*;
- import java.net.*;
- public class UDPRARPServer {
- public static void main(String args[]) throws Exception
- {
- DatagramSocket serverSocket = new DatagramSocket(6789);
- byte[] receiveData = new byte[1024];
- byte[] sendData = new byte[1024];
- String logical[] = {"172.16.27.34","195.24.54.204", "10.10.137.1"};
- String physical[] = {"8E:AE:08:AA","0A:78:6C:AD", "d4:6d:50:84:db:c8"};
- String reply = "";
- while(true)
- {
- DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
- serverSocket.receive(receivePacket);
- String phyaddr = new String(receivePacket.getData());
- System.out.println("Physical Address received: " + phyaddr);
- phyaddr = phyaddr.trim();
- InetAddress IPAddress = receivePacket.getAddress();
- int port = receivePacket.getPort();
- for(int i = 0; i < physical.length; i++)
- {
- if (phyaddr.equals(physical[i]))
- {
- reply = logical[i];
- sendData = reply.getBytes();
- DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, port);
- serverSocket.send(sendPacket);
- }
- }
- }
- }
- }
- //CLIENT
- import java.io.*;
- import java.net.*;
- public class UDPRARPClient {
- public static void main(String args[]) throws Exception
- {
- BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in));
- DatagramSocket clientSocket = new DatagramSocket();
- InetAddress IPAddress = InetAddress.getByName("localhost");
- byte[] sendData = new byte[1024];
- byte[] receiveData = new byte[1024];
- System.out.printf("Enter Physical address: ");
- String phyaddr = inFromUser.readLine();
- sendData = phyaddr.getBytes();
- DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, 6789);
- clientSocket.send(sendPacket);
- DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
- clientSocket.receive(receivePacket);
- String logaddr = new String(receivePacket.getData());
- System.out.println("Logical Address:" + logaddr);
- clientSocket.close();
- }
- }
- ********************************
- 6.Find the physical address of a host when its logical address is known (ARP protocol) using UDP.
- //server
- import java.io.*;
- import java.net.*;
- import java.util.*;
- class Serverarp12
- {
- public static void main(String args[])
- {
- try
- {
- DatagramSocket server=new DatagramSocket(1309);
- while(true)
- {
- byte[] sendbyte=new byte[1024];
- byte[] receivebyte=new byte[1024];
- DatagramPacket receiver=new DatagramPacket(receivebyte,receivebyte.length);
- server.receive(receiver);
- String str=new String(receiver.getData());
- String s=str.trim();
- //System.out.println(s);
- InetAddress addr=receiver.getAddress();
- int port=receiver.getPort();
- String ip[]={"165.165.80.80","165.165.79.1"};
- String mac[]={"6A:08:AA:C2","8A:BC:E3:FA"};
- for(int i=0;i<ip.length;i++)
- {
- if(s.equals(ip[i]))
- {
- sendbyte=mac[i].getBytes();
- DatagramPacket sender=new DatagramPacket(sendbyte,sendbyte.length,addr,port);
- server.send(sender);
- break;
- }
- }
- break;
- }
- }
- catch(Exception e)
- {
- System.out.println(e);
- }
- }
- }
- //client
- import java.io.*;
- import java.net.*;
- import java.util.*;
- class Clientarp12
- {
- public static void main(String args[])
- {
- try
- {
- DatagramSocket client=new DatagramSocket();
- InetAddress addr=InetAddress.getByName("127.0.0.1");
- byte[] sendbyte=new byte[1024];
- byte[] receivebyte=new byte[1024];
- BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
- System.out.println("Enter the logical address (IP):");
- String str=in.readLine();
- sendbyte=str.getBytes();
- DatagramPacket sender=new DatagramPacket(sendbyte,sendbyte.length,addr,1309);
- client.send(sender);
- DatagramPacket receiver=new DatagramPacket(receivebyte,receivebyte.length);
- client.receive(receiver);
- String s=new String(receiver.getData());
- System.out.println("The Physical Address is(MAC): "+s.trim());
- client.close();
- }
- catch(Exception e)
- {
- System.out.println(e);
- }
- }
- }
- *********************************
- 7.Implement Client - Server communication to access Date using UDP in Java.
- //server
- import java.io.*;
- import java.net.*;
- import java.util.*;
- public class UDPDateServer {
- public static void main(String args[]) throws Exception
- {
- DatagramSocket serverSocket = new DatagramSocket(6789);
- byte[] receiveData = new byte[1024];
- byte[] sendData = new byte[1024];
- String GetDate = "";
- while(true)
- {
- DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
- serverSocket.receive(receivePacket);
- String msg = new String(receivePacket.getData());
- System.out.println("Message: " + msg);
- InetAddress IPAddress = receivePacket.getAddress();
- int port = receivePacket.getPort();
- msg = msg.trim();
- if (msg.equals("date"))
- {
- Date d = new Date();
- GetDate = d.toString();
- }
- sendData = GetDate.getBytes();
- DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, port);
- serverSocket.send(sendPacket);
- }
- }
- }
- //client
- import java.io.*;
- import java.net.*;
- public class UDPDateClient {
- public static void main(String args[]) throws Exception
- {
- BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in));
- DatagramSocket clientSocket = new DatagramSocket();
- InetAddress IPAddress = InetAddress.getByName("localhost");
- byte[] sendData = new byte[1024];
- byte[] receiveData = new byte[1024];
- System.out.printf("Enter Request: ");
- String msg = inFromUser.readLine();
- sendData = msg.getBytes();
- DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, 6789);
- clientSocket.send(sendPacket);
- DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
- clientSocket.receive(receivePacket);
- String reply = new String(receivePacket.getData());
- System.out.println("FROM SERVER:" + reply);
- clientSocket.close();
- }
- }
- ==========================================
- This class of java in "java.net" represents an Internet Protocol (IP) address. InetAddress class is used to create and manipulate IP objects. It does not have a public constructor. The object of this class can be obtained using its static methods getLocalHost(), getByName(), and getAllByName(). It has several useful methods for obtaining host names and IP addresses
- Methods in java.net that return InetAddress
- InetAddress
- InterfaceAddress.getAddress()
- Returns an InetAddress for this address.
- InetAddress
- InetSocketAddress.getAddress()
- Gets the InetAddress.
- InetAddress
- DatagramPacket.getAddress()
- Returns the IP address of the machine to which this datagram is being sent or from which the datagram was received.
- static InetAddress[]
- InetAddress.getAllByName(String host)
- Given the name of a host, returns an array of its IP addresses, based on the configured name service on the system.
- InetAddress
- InterfaceAddress.getBroadcast()
- Returns an InetAddress for the brodcast address for this InterfaceAddress.
- static InetAddress
- InetAddress.getByAddress(byte[] addr)
- Returns an InetAddress object given the raw IP address .
- static InetAddress
- InetAddress.getByAddress(String host, byte[] addr)
- Create an InetAddress based on the provided host name and IP address No name service is checked for the validity of the address.
- static InetAddress
- InetAddress.getByName(String host)
- Determines the IP address of a host, given the host's name.
- protected InetAddress
- URLStreamHandler.getHostAddress(URL u)
- Get the IP address of our host.
- protected InetAddress
- SocketImpl.getInetAddress()
- Returns the value of this socket's address field.
- InetAddress
- Socket.getInetAddress()
- Returns the address to which the socket is connected.
- InetAddress
- ServerSocket.getInetAddress()
- Returns the local address of this server socket.
- InetAddress
- DatagramSocket.getInetAddress()
- Returns the address to which this socket is connected.
- InetAddress
- MulticastSocket.getInterface()
- Retrieve the address of the network interface used for multicast packets.
- InetAddress
- Socket.getLocalAddress()
- Gets the local address to which the socket is bound.
- InetAddress
- DatagramSocket.getLocalAddress()
- Gets the local address to which the socket is bound.
- static InetAddress
- InetAddress.getLocalHost()
- Returns the local host.
- protected InetAddress
- Authenticator.getRequestingSite()
- Gets the InetAddress of the site requesting authorization, or null if not available.
- \A Program That Prints the Address of 192.168.64.3\\
- import java.net.*;
- public class Address {
- public static void main (String[] args) {
- try {
- InetAddress address = inetAddress.getByName("192.168.64.3");
- System.out.println(address);
- }
- catch (UnknownHostException e) {
- System.out.println("Could not find 192.168.64.3 ");
- }
- }
- }
- \\program find the all address of google\\
- import java.net.*;
- public class AllAddressesOfgoogle {
- public static void main (String[] args) {
- try {
- InetAddress[] addresses = InetAddress.getAllByName("www.google.com");
- for (int i = 0; i < addresses.length; i++) {
- System.out.println(addresses[i]);
- }
- }
- catch (UnknownHostException e) {
- System.out.println("Could not find www.microsoft.com");
- }
- }
- }
- \\prints the address of the machine it's run on.
- import java.net.*;
- public class MyAddress {
- public static void main (String[] args) {
- try {
- InetAddress address = InetAddress.getLocalHost( );
- System.out.println(address);
- }
- catch (UnknownHostException e) {
- System.out.println("Could not find this computer's address.");
- }
- }
- }
- Given the Address, Find the Hostname
- import java.net.*;
- public class ReverseTest {
- public static void main (String[] args) {
- try {
- InetAddress ia = InetAddress.getByName("192.168.64.3");
- System.out.println(ia.getHostName( ));
- }
- catch (Exception e) {
- System.err.println(e);
- }
- }
- }
- . Are www.oreilly.com and helio.ora.com the Same?
- import java.net.*;
- public class OReillyAliases {
- public static void main (String args[]) {
- try {
- InetAddress oreilly = InetAddress.getByName("www.oreilly.com");
- InetAddress helio = InetAddress.getByName("helio.ora.com");
- if (oreilly.equals(helio)) {
- System.out.println("www.oreilly.com is the same as helio.ora.com");
- }
- else {
- System.out.println("www.oreilly.com is not the same as helio.ora.com");
- }
- }
- catch (UnknownHostException e) {
- System.out.println("Host lookup failed.");
- }
- }
- }
- import java.net.*;
- import java.io.*;
- public class prog7
- {
- public static void main(String args[])
- {
- try
- {
- BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
- File f=new File("test.txt");
- FileWriter fw=new FileWriter(f);
- System.out.println("Enter the URL which u want to download");
- String str=br.readLine();
- URL u=new URL(str);
- InputStream in=u.openStream();
- BufferedReader br1=new BufferedReader(new InputStreamReader(in));
- String str1;
- while((str1=br1.readLine())!=null){
- fw.write(str1+"\r\n");
- }
- System.out.println("the content of the url:"+str+" is download and saved in text .txt");
- fw.close();
- }
- catch(Exception e)
- {
- System.out.println(e);
- }
- }
- }
- View more
- Download as text
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement