# Client Connectet nicht (Neuling!)



## Happyman0815 (25. Jul 2009)

Hallo Leute!

Ich habe eine Klasse geschrieben, die einen Client darstellt.




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



public class client {
	
	int error_code = 0;
	//static final String recv_msg;
	//static final String error_msg;
	
	
    static final String  ANMELDUNG = "ANMELDUNG";
    static final String  ENDE      = "ENDE";
    int port    = 1002;
    static int length  = 256;    // Länge eines Pakets
    
    String servername = "localhost"; //"127.0.0.1";
    String text = null;
    DatagramPacket packet;
    byte[] ba = ANMELDUNG.getBytes();
    DatagramSocket socket;

	public create_client_com(String ip_adress,  int port) 
	{
		error_code=0;
		
		//this.port = port;
		//this.servername = ip_adress;

		   try {
			    socket = new DatagramSocket();
			   
			    //socket = new DatagramSocket();
		        InetAddress ia =  InetAddress.getByName( servername );
		        packet = new DatagramPacket( ba, ba.length, ia, this.port );
		        System.out.println("Here I am!");

		        // alles beenden
		        //System.exit(0);
		      }
		      catch( IOException e ) {
		        System.err.println("Ausnahmefehler: " +  e );
		      }
	}
	
	//////////////////////=========================
	
	public void send(byte[] buf_send)
	{
		try{
			//Schreiben
			this.packet.setData(buf_send, 0, buf_send.length );
			socket.send( this.packet );		
		}
		catch (IOException e)
	    {
			error_code = 2;
			System.err.println("Ausnahmefehler: " +  e );
	    }
	}

	
	//////////////////////=========================
	
	public void recv(byte[] dat)
	{
		
	      //DatagramPacket packet = new DatagramPacket( new byte[length], length);
	
	        try {
	           socket.receive( this.packet );
	           InetSocketAddress add = (InetSocketAddress)packet.getSocketAddress();
	           String text = new String(packet.getData(), 0, packet.getLength());
	           System.out.println( add +">" + text);
	           //System.out.println( ">" + text);
	        }
	        catch( IOException e ) {
	           System.err.println("Ausnahmefehler: " +  e );
	        }

	}


	public int get_error()
	{
		return error_code;
	}
	
}//END Class
```


Wenn ich jetzt den Konstruktor aufrufe, soll der Client sich mit dem Server am Localhost am Port 1002 verbinden.

Das tut er aber nicht! Das ist mein erster Versuch in Java einen Clienten zu schreiben. Evtl. ist der Fehler ja offensichtlich 




Gruß
Happyman0815


----------



## sparrow (25. Jul 2009)

Was geht nicht? Wie weit kommt das Programm? wo bleibt es hängen? Welche der Ausgaben erscheint? Was ist das für ein Serverprogramm? Etc... etc... etc....


----------



## Happyman0815 (25. Jul 2009)

Es soll eine TCP/IP Verbindung zum Server hergestellt werden:



```
byte[] ba = ANMELDUNG.getBytes();
    DatagramSocket socket;

...

 try {
                socket = new DatagramSocket();

                InetAddress ia =  InetAddress.getByName( "127.0.0.1 );
                packet = new DatagramPacket( ba, ba.length, ia, this.port );

              }
              catch( IOException e ) {
                   System.err.println("Ausnahmefehler: " +  e );
              }
```

Ich erwarte an dieser stelle eigentlich, das er eine Verbindung zum Server aufbaut.
Das macht er aber nicht. Er bleibt auch nicht hängen oder so.... Am Server tut sich nur nichts. Die send() Funktion kann immer benutzt werden. Nur beim receive hängt er. (JA klar er bekommt ja auch nie eine Nachricht...)

Mein Problem ist wie schon gesagt das beim Server kein anzeichen eines Connects kommt. Der Server funktioniert aber auf jedenfall, da er mit einem anderen in C++ geschriebenen Clienten bestens fuktioniert.

Hmmm... versteht jemand das Problem? Wenn nicht sagt mir was für relevante Informationen noch fehlen!


Gruß
Happyman0815


----------



## sparrow (25. Jul 2009)

Falsches Vorgehen. Was du da versuchst geht in Richtung UDP, nich TCP.

Mehr dazu hier: Handbuch der Java-Programmierung - Google Bücher
Das Buch gibts kostenlos alsHTML-Version unter www.javabuch.de - Das Handbuch der Java-Programmierung


----------



## Happyman0815 (26. Jul 2009)

Ja da hast du wohl recht gehabt ...

Ich hab jetzt einfach das Wiki Bsp. genommen.


"Ein primitiver Client" :lol:

für meine Zwecke vollkommen ausreichen :toll:

Gruß
Happyman0815


----------

