Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
17 views15 pages

SNMPServer

Uploaded by

mr.dhanush.j
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
17 views15 pages

SNMPServer

Uploaded by

mr.dhanush.j
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 15

SNMPServer :

import java.io.*;
import java.net.*;
public class SNMPServer
{
public static void main(String[] args) throws
IOException
{
DatagramSocket socket = new
DatagramSocket(8086);
// SNMP uses UDP port 8086
byte[] receiveData = new byte[1024];
System.out.println("SNMP Server is running...");
while (true)
{
DatagramPacket receivePacket =new
DatagramPacket(receiveData,receiveData.l
ength); socket.receive(receivePacket);
String request = new String
( receivePacket. getData () ,
0,receivePacket.getLength());
System.out.println("Received SNMP
request: " + request);
// Simple response message
String response = "This is a SNMP
response to: " + request;
byte[] sendData =
response.getBytes();
InetAddress clientAddress =
receivePacket.
getAddress ();
int clientPort =
receivePacket.getPort();
DatagramPacket sendPacket = new
Datagram Packet(sendData,
sendData.length, clientAddress, clientPort);
socket.send(sendPacket);
}
}
}

SNMPClient:

import java.io.*;
import java.net.*;
public class SNMPClient
{
public static void main(String[] args) throws
IOException
{
BufferedReader reader = new
BufferedReader(new
InputStreamReader(System.in));
DatagramSocket socket = new
DatagramSocket();
InetAddress
serverAddress=InetAddress.getByName("localh
ost");
// Change to the actual server IP if needed
int serverPort = 8086;
// SNMP uses port 8086
System.out.println("Enter SNMP request: ");
String request = reader.readLine();
byte[] sendData = request.getBytes();
DatagramPacket sendPacket = new
DatagramPacket( sendData,sendData.length,
serverAddress, serverPort);
socket.send(sendPacket);
byte[] receiveData = new byte[1024];
DatagramPacket receivePacket = new
DatagramPacket (receiveData,
receiveData.length);
socket.receive(receivePacket);
String response = new
String(receivePacket.getData(), 0,
receivePacket.getLength());
System.out.println("Received SNMP response: "
+ response);

socket.close();
}
}
OUTPUT :
PingServer :

import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
public class PingServer
{
public static void main(String[] args)
{
try
{
DatagramSocket socket = new
DatagramSocket (1234);
byte[] receiveBuffer = new
byte[1024];
System.out.println("Server is waiting
for ping reque sts ...");
while (true)
{
DatagramPacket packet = new
Datagram Packet(receiveBuffer,
receiveBuffer.length);
socket.receive(packet);
// Wait for client ping
String receivedData = new String
(packet. getData(), 0,
packet.getLength());
System.out.println("Received from
client: " + receivedData);
// Send the same data back
(echo for ping)
InetAddress clientAddress = packet.
getAddress();
int clientPort = packet.getPort();
String response = "Pong";
DatagramPacket responsePacket =
new
DatagramPacket(response.getBytes(),
response.length(), clientAddress,
clientPort);
socket.send(responsePacket);
System.out.println("Pong sent to
client.");
}
} catch (Exception e)
{
e.printStackTrace();
}
}
}

PingClient :

import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
public class PingClient
{
public static void main(String[] args)
{
try
{
DatagramSocket socket = new
DatagramSocket();
InetAddress serverAddress =
InetAddress.getByName ("localhost"); // Replace
with server IP
byte[] sendBuffer = "Ping".getBytes();
DatagramPacket packet = new
DatagramPacket (sendBuffer,
sendBuffer.length, serverAddress,1234);
// Send "Ping" request to the server
socket.send(packet);
System.out.println("Ping sent to server.");
// Receive the response
byte[] receiveBuffer = new byte[1024];
DatagramPacket responsePacket =new
DatagramPacket (receiveBuffer,
receiveBuffer.length);
socket.receive(responsePacket);
// Wait for server response
String response=new
String(responsePacket.getData(),0,
responsePacket.getLength());
System.out.println("Response from
server:"+response );
} catch (Exception e)
{
e.printStackTrace();
}
}
}
OUTPUT :
TraceRouteServer :

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
public class TraceRouteServer
{
public static void main(String[] args) throws
IOException
{
int port = 33434;
// Port on which to listen for incoming
packets
DatagramSocket serverSocket = new
DatagramSocket (port);
System.out.println("TraceRoute Server is
running on port " + port + "...");
while (true)
{
byte[] receiveData = new byte[1024];
DatagramPacket receivePacket=new
Datagram Packet (receiveData,
receiveData.length);
// Receive packet from client
serverSocket.receive(receivePacket);
String message=new
String(receivePacket.getData (),0,
receivePacket.getLength());
InetAddress clientAddress=receivePacket
.getAddress();
int clientPort = receivePacket.getPort();
System.out.println("Received from client: "
+ message + " | Responding back...");
// Send a response packet back to
client
String responseMessage = "Reply from " +

InetAddress.getLocalHost().getHostAddress();
byte[] responseData=responseMessage.
getBytes();
DatagramPacket responsePacket = new
Datagram Packet(responseData,
responseData.length,clien
tAddress, clientPort);
serverSocket.send(responsePacket);
}
}
}

TraceRouteClient :

import java.io.IOException;
import java.net.*;
public class TraceRouteClient
{
public static void main(String[] args) throws
IOException
{
String serverAddress = "localhost";
// Use the actual server address if needed
int port = 33434;
int maxHops = 30;
InetAddress address = InetAddress.getByName
(serverAddress);
System.out.println("Tracing route to " +
serverAddress);
for (int ttl = 1; ttl <= maxHops; ttl++)
{
DatagramSocket socket = new
DatagramSocket();
socket.setSoTimeout(3000);
// 3 seconds timeout
try {
socket.setTrafficClass(ttl);
// Setting the TTL
byte[] data = ("Trace packet with TTL
"+
ttl).getBytes();
DatagramPacket packet = new
Datagram
Packet(data, data.length, address,
port);
// Send packet
long startTime =
System.currentTimeMillis();
socket.send(packet);
// Prepare to receive response
byte[] receiveData = new byte[1024];
DatagramPacketreceivePacket=newD
atagra
mPacket(receiveData,
receiveData.length);
socket.receive(receivePacket);
// Measure round-trip time
long rtt = System.currentTimeMillis() -
startTime;
// Display the hop details
InetAddress routerAddress =
receivePacket
.getAddress();
System.out.println("Hop " + ttl + ": "
+ router
Address .getHostAddress() + " (RTT: "
+ rtt +
"ms)");
// If the response address is the
final target
//then exit the loop
if (routerAddress.equals(address))
{
System.out.println("Reached
destinati
on.");
break;
}
} catch (SocketTimeoutException e)
{
System.out.println("Hop " + ttl + ":
Request timed out.");
} finally
{
socket.close();
}
}
}
}
OUTPUT :

You might also like