# Hilfe Chat Login



## xDarkSunx (6. Mrz 2011)

Hallo Community 

ich den Chat außer FAQ genommen und zu sammen gebastelt warnings behoben usw 
nun möchte ich das Jeder Chatter sich einen account + Passwort anlegen kann am besten über mysql das ich die Registration in php schreiben kann 
aber ich weiss nicht wie ich das machen soll wäre lieb um hilfe 

*Die Chat applet*


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

public class chatapplet extends Applet implements Runnable
{
	private static final long serialVersionUID = 1L;
	public static final int PORT = 8765;
	Socket socket;
	DataInputStream in;
	PrintStream out;
	TextField inputfield;
	TextArea outputarea;
	Thread thread;

	public void init()
	{
		inputfield = new TextField();
		outputarea = new TextArea();
		outputarea.setFont( new Font("Dialog", Font.PLAIN, 12));
		outputarea.setEditable(false);

		this.setLayout(new BorderLayout());
		this.add("South", inputfield);
		this.add("Center", outputarea);

		this.setBackground(Color.lightGray);
		this.setForeground(Color.black);
		inputfield.setBackground(Color.white);
		outputarea.setBackground(Color.white);
	}

	public void start()
	{
		try
		{
			socket = new Socket(this.getCodeBase().getHost(), PORT);
			in = new DataInputStream(socket.getInputStream());
			out = new PrintStream(socket.getOutputStream());
		} catch (IOException e)
		{
			this.showStatus(e.toString());
			say("Verbindung zum Server fehlgeschlagen!");
			System.exit(1);
		}

		say("Verbindung zum Server aufgenommen...");

		if (thread == null)
		{
			thread = new Thread(this);
			thread.setPriority(Thread.MIN_PRIORITY);
			thread.start();
		}
	}


	@SuppressWarnings("deprecation")
	public void stop()
	{
		try
		{
			socket.close();
		} catch (IOException e)
		{
			this.showStatus(e.toString());
		}

		if ((thread !=null) && thread.isAlive())
		{
			thread.stop();
			thread = null;
		}
	}


	@SuppressWarnings("deprecation")
	public void run()
	{
		String line;

		try
		{
			while(true)
			{
				line = in.readLine();
				if(line!=null)
					outputarea.appendText(line+'\n' );
			}
		} catch (IOException e) { say("Verbindung zum Server abgebrochen"); }
	}


	public boolean action(Event e, Object what)
	{
		if (e.target==inputfield)
		{
			String inp=(String) e.arg;

			out.println(inp);
			inputfield.setText("");
			return true;
		}

		return false;
	}


	
	public void say(String msg)
	{
		outputarea.appendText("***"+msg+"***\n");
	}
}
```

*Der Chat Server*


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

public class chatserver implements Runnable
{
	public static final int PORT = 8765;
	protected ServerSocket listen;
	protected Vector<connection> connections;
	Thread connect;

	public chatserver()
	{
		try
		{
			listen = new ServerSocket(PORT);
		} catch (IOException e)
		{
			System.err.println("Fehler beim Erzeugen der Sockets:"+e);
			System.exit(1);
		}

		connections = new Vector<connection>();

		connect = new Thread(this);
		connect.start();
	}

	public void run()
	{
		try
		{
			while(true)
			{
				Socket client=listen.accept();

				connection c = new connection(this, client);
				connections.addElement(c);
			}
		} catch (IOException e)
		{
			System.err.println("Fehler beim Warten auf Verbindungen:"+e);
			System.exit(1);
		}
	}

	public static void main(String[] args)
	{
		new chatserver();
	}

	public void broadcast(String msg)
	{
		int i;
		connection you;

		for (i=0; i<connections.size(); i++)
		{
			you = (connection) connections.elementAt(i);
			you.out.println(msg);
		}
	}
}
```

*und die Connection*


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

class connection extends Thread
{
	protected Socket client;
	protected DataInputStream in;
	protected PrintStream out;
	protected chatserver server;

	public connection(chatserver server, Socket client)
	{
		this.server=server;
		this.client=client;

		try
		{
			in = new DataInputStream(client.getInputStream());
			out = new PrintStream(client.getOutputStream());
		} catch (IOException e)
		{
			try { client.close(); } catch (IOException e2) {} ;
			System.err.println("Fehler beim Erzeugen der Streams: " + e);
			return;
		}

		this.start();
	}


	@SuppressWarnings("deprecation")
	public void run()
	{
		String line;

		try
		{
			while(true)
			{
				line=in.readLine();
				if(line!=null)
					server.broadcast(line);
			}
		} catch (IOException e)
		{
			System.out.println("Fehler:" + e);
		}
	}
}
```

LG 

xDarkSunx


----------



## XHelp (6. Mrz 2011)

xDarkSunx hat gesagt.:


> nun möchte ich das Jeder Chatter sich einen account + Passwort anlegen kann am besten über mysql das ich die Registration in php schreiben kann
> aber ich weiss nicht wie ich das machen soll wäre lieb um hilfe



Dein Chat kann doch noch gar nicht mit dem Anmeldung umgehen. Mache erste eine Funktion rein, damit der Client sich anmelden kann. Die Registrierung kannst du ja dann später einbauen. Und du brauchst auch php nicht. Das kannst du alles auch in Java machen.

P.S. Klassen werden in UpperCamelCase geschrieben


----------



## xDarkSunx (6. Mrz 2011)

Jaa das meinte ich doch ich weiss nicht wie ich den server so mache das er mit der anmeldung umgehen kann :*


----------



## XHelp (6. Mrz 2011)

Bevor die Verbindung aufgebaut wird, lass den Benutzer Name+PW Eingeben. Dann verbindest du dich zum Server und schickst sowas wie 
	
	
	
	





```
"/auth Nick Pass"
```
. Der Server wertet die Sachen aus und dann schickt er eine Nachricht zurück und beendet ggf. die Verbindung.


----------



## xDarkSunx (6. Mrz 2011)

Kannst du miia das ein bischen genauer erleutern hab nach nen tutorial grade gesucht aber finde keins lerne noch


----------



## XHelp (6. Mrz 2011)

xDarkSunx hat gesagt.:


> Kannst du miia das ein bischen genauer erleutern hab nach nen tutorial grade gesucht aber finde keins lerne noch



Aber sicher doch: und zwar gibt es da die Interpunktion als Teil der Rechtschreibung. Es wurde nicht, wie fälschlicherweise von vielen angenommen wird, von den Tastaturindustrie erfunden um die Abnutzung der Geräte zu verstärken und den Umsatz in die Höhe zu treiben. Es dient wirklich einem höherem Zweck: nämlich der Verständigung. Man stelle sich vor im Gerichtsurteil steht: "Begnadigen unmöglich hängen!". So ein Komma kann in diesem Fall über Leben und Tod entscheiden.

Aber zurück zu der eigentlichen Frage: was genau willst du denn wissen? Du hast doch alles schon in deinem Quelltext stehen: Verbindungsaufbau, Textversand, Eingabe. Jetzt musst du auf dem Server den Text von den Befehlen trennen. In meinem Beispiel wäre es ein 
	
	
	
	





```
/
```
 am Anfang.


----------



## xDarkSunx (6. Mrz 2011)

also ich hatte mir das so gedacht...

ich würde gerne das mein chat mit einer account datenbank in mysql verbunden wird,
wo die accounts der einzelnen chatter gespeichert werden

dazu eine login applet die ich in meiner homepage einbinden kann die in etwar wie folgt aussieht

*Login:*







und das wen man sich ein geloggt hat sich der chat in einer java popup öffnet 

aber keine ahnung wie ich das mache


----------



## XHelp (6. Mrz 2011)

Es hört sich so an, als ob du dir zu viel vornimmst, wenn du noch nie mit GUI, Netzwerken und Datenbanken gearbeitet hast. Entscheide dich für ein Thema und mache dich zunächst damit vertraut.

Aber generell solltest du erstmal die Trennung von Textnachrichten und Befehlen bewerkstelligen und sich Gedanken über das Protokoll machen.


----------

