Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
Port loggen mit Java

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Programmieren - Allgemein
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Descartes
Gast





BeitragVerfasst am: 06. Nov 2000 11:51   Titel: Port loggen mit Java

Suche ein Tool, womit ich den Traffic der über einen bestimmten Port geht.
Am liebsten wäre natürlich Java, damit das ganze dann auch auf verschiedenen Plattformen funktioniert...

Client <---> MeineIP:MeinPort <---> [LoggerProgg] <---> ServerIP:ServerPort <---> Server

Habs schon mal mit Java versucht, allerdings hat sich die Applikation auf dem Client selbst damit zugemüllt.
 

CrashDump
Gast





BeitragVerfasst am: 06. Nov 2000 12:55   Titel: Re: Port loggen mit Java

Hallo Descartes,
nimm einfach mal folgenden kleinen Java Hack als Ausgangsbasis.

%> java 2513 192.168.1.10 2540
Listening to local port 2513
Forwarding to 192.168.1.10:2540

code:

/* ExperimentalServer.java */

import java.io.*;
import java.util.*;
import java.net.*;

public class ExperimentalServer
{
public static void main(String args[])
{
if (args.length != 3) {
System.err.println(
"Usage: java ExperimentalServer <local port> <remote IP> <remote port>"
);
System.exit(1);
}
try {
int port = Integer.parseInt(args[0]);
String rip = args[1];
int rport = Integer.parseInt(args[2]);
System.out.println("Listening to local port " + port);
System.out.println("Forwarding to " + rip +":"+ rport);
int calls = 0;
ServerSocket httpd = new ServerSocket(port);
while (true) {
Socket socket = httpd.accept();
Socket socket2 = new Socket(rip, rport);
(new ClientThread(++calls, socket, socket2)).start();
}
} catch (IOException e) {
System.err.println(e.toString());
System.exit(1);
}
}
}

/**
* Die Thread-Klasse für die Client-Verbindung.
*/

class ClientThread extends Thread
{
private Socket socket;
private Socket socket2;
private int id;
private PrintStream out;
private InputStream in;
private byte[] buff;

/**
* Erzeugt einen neuen Client-Thread mit der angegebenen
* id und dem angegebenen Socket.
*/

public ClientThread(int id, Socket socket, Socket socket2)
{
this.id = id;
this.socket = socket;
this.socket2 = socket2;
}

/**
* Hauptschleife für den Thread.
*/

public void run()
{
try {
System.out.println(id + ": Incoming call...");
out = new PrintStream(socket2.getOutputStream());
in = socket.getInputStream();
readRequest();
createResponse();
socket.close();
System.out.println(id + ": Closed.");
} catch (IOException e) {
System.out.println(id + ": " + e.toString());
System.out.println(id + ": Aborted.");
}
}

/**
* Liest den nächsten Request
*/

private void readRequest() throws IOException
{
buff = new byte[in.available()];
in.read(buff);
System.out.println(buff);
}

/**
* Request bearbeiten
*/

private void createResponse()
{
out.print(buff);
}
}

 

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Programmieren - Allgemein Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy