# Port auf einer bestimmten IP-Adresse auslesen?



## strong (3. Mai 2010)

Hallo,


Ich würde gern, wissen ob es mit JAVA folgendes möglich ist:

- Ich habe mehrere Clients, die an eine IP-Adresse mit einer bestimmten Port(514) Daten in XML-Format schickt. Ich möchte diese Daten erst mal nur einlesen und auf die Bildschirm ausgeben. 

Also:

IP-Adresse: 192.168.1.10
Port : 514

Gruß


----------



## Ebenius (3. Mai 2010)

Ich verstehe es nicht ganz... Willst Du den Server schreiben der auf 192.168.1.10 läuft und die Daten entgegen nimmt und ausgibt? Oder läuft da bereits ein Server und Du willst eine dritte Instanz schaffen, die dem Netz-Traffic zuhört und die übertragenen Daten mitschreibt? Letzteres wird so nicht gehen, ersteres ist natürlich kein Problem.

Ebenius


----------



## strong (3. Mai 2010)

ich will ein Server schreiben, der auf 192.168.1.10 laufen wird und die Daten, die zum Port 514 kommen, entgegen nimmt und ausgibt.


----------



## Ebenius (3. Mai 2010)

In dem Fall erzeugst Du einen ServerSocket für den Port 514. In einer Schleife akzeptierst Du Verbindungsanfragen an den Server und liest dann vom InputStream des Sockets Daten und machst mit Ihnen was immer Dir beliebt.

Guck mal hier im Sun Java™ Tutorial: Writing the Server Side of a Socket.

Ebenius


----------



## strong (3. Mai 2010)

Hallo,


Ich habe aber keinen Einfluss auf Client-Seite. Ich möchte UDP-Syslog-Messages, die aus Cisco-Geräten kommen, ausgeben lassen.


Gruß


----------



## Ebenius (3. Mai 2010)

In dem Fall bist Du natürlich mit einem DatagramSocket besser dran. 

Ebenius


----------



## strong (4. Mai 2010)

Hallo, 

vielen Dank, es hat klappt...

Code:

```
import java.io.IOException; 
import java.net.*;  

public class UDPServer {   
	public static void main( String[] args ) throws IOException   {     
		DatagramSocket socket = new DatagramSocket(514);      
		while ( true )     {       // Auf Anfrage warten        
			DatagramPacket packet = new DatagramPacket( new byte[1024], 1024 );       
			socket.receive( packet );        // Empfänger auslesen        
			//InetAddress address = packet.getAddress();       
			//int         port    = packet.getPort();       
			int         len     = packet.getLength();       
			byte[]      data    = packet.getData();        
			//System.out.printf( "Packet von %s vom Port %d: %n %s%n",  address, port, new String( data, 0, len ) );     
			String s = new String(data, 0, len);
			System.out.printf( "%s\n", s );
			System.out.println(s.length());
		  }   
		}
}
```


----------

