Webmaster Forum Logo Part 1 Webmaster Forum Logo Part 2
Webmaster Forum Logo Part 3
     
 
  :: Anmeldung

Benutzername:

Registrierung...

Passwort:

Passwort vergessen?

angemeldet bleiben


  
  :: Umfrage
Welche sozialen Netzwerke benutzt du regelmäßig?

 Facebook
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 73%
 keines
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 22%
 Google+
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 19%
 Twitter
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 11%
 Xing
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 6%
 schülerVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 5%
 meinVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 4%
 studiVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 4%
 MySpace
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 2%
 LinkedIn
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 2%

 ges. 392 Stimmen
 
  :: Buttons

Valid XHTML 1.0 Transitional

a.d-

Doppel-As

Dabei seit: 19.02.2004

Beiträge: 108

 

1 Zum Seitenanfang

Samstag, 5. Februar 2005, 15:58

chat in java

hi!

da ich nicht weiß wonach ich genau in google suchen sollte weil ich mit "java+chat+tutorials" nicht weit gekommen bin wollte ich mal fragen ob da jemand einige tutorials kennt, wo beschrieben wird wie man ein java-chat-applet programmieren kann


mfg.
[COLOR=skyblue][SIZE=20][B][URL=http://www.adonis-art.at.tf]MY WEBSITE[/URL][/B][/SIZE][/COLOR]
 

channelmaster

Foren Gott

Dabei seit: 21.09.2002

Beiträge: 2 183

 

2 Zum Seitenanfang

Samstag, 5. Februar 2005, 16:35

Hallo

Du suchst eine Schritt-für-Schritt Beschreibung, wie man ein java-Chat-Applet baut oder wie? Du hast aber schon einmal in Java etwas programmiert - oder?

mfg, Rico
... WMW Urgestein
 

thebone

Kaiser

Dabei seit: 05.11.2002

Beiträge: 1 141

 

3 Zum Seitenanfang

Samstag, 5. Februar 2005, 18:21

Chat Source

Hallo,

für euch hier mal was zum testen.:

CChatServer - lauscht auf verbindungen auf einem beliebigen Port...verwaltet die Clients...passt nachrichten an alle Clients weiter
CChatClient - verbindet sich zum Server..schickt user eingaben zum server..stellt text vom server dar
CListener - eine Klasse im eigenem Thread..lascht auf daten von der jeweils anderen seite
IListenAble - ein Interface..wird von CChatClient und CChatServer implementiert...dient dazu beide in CListener gleich zubehandeln.

Also hier der Code...sorry für die mangelnde kommentierung...ist nicht mehr als eine testumgebung.
-CChatServer-

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
/*
toDo:

knt:Entfernen der verbindungen zu clients (removeClient)
	die daten im vektor rutschen nach d.h. es gibt keinen
	festen index für die elemente
	Das ansprechen muss anders gesehen ich glaube es gibt eine getObject(obj)
*/
import java.util.*;
import java.io.*;
import java.net.*;

public class CChatServer implements IListenAble
{
	private int port;
	private Vector clientList = new Vector();
	private ServerSocket clientListener;

	//konstruktor
	CChatServer(int port)
	{
		try
		{clientListener = new ServerSocket(port);}
		catch(IOException ioe)
		{System.out.println ("** Fehler beim initialisieren: " +ioe);}
		System.out.println("** chatServer auf Port " + port + " initialisiert");

	}

	//lauscht nach neuen clients
	public void listen()
	{
		Socket clientSock;

		System.out.println("** chatServer lauscht auf verbindungen");
		System.out.println("***************************************\n");
		try
		{
			while(true)
			{
				clientSock = clientListener.accept();
				System.out.println("accept: " + clientSock.toString());
				addClient(clientSock);
			}
		}
		catch(IOException ioe)
		{System.out.println("** Fehler beim lauschen auf verbindunen: " + ioe);}
	}

	//erstellt eine Verbindung zu einem Client
	//und fügt diesen zu einem Vector hinzu
	private boolean addClient(Socket clientSock)
	{
		CListener l;
		int id;
		try
		{
			//BufferedReader in = new BufferedReader(new InputStreamReader(clientSock.getInputStream()));
			PrintWriter out = new PrintWriter(clientSock.getOutputStream());

			clientList.addElement(out);
			id = clientList.size()-1;
			Thread t = new Thread(l = new CListener(clientSock, this, id));
			t.start();
			System.out.println("verbindung zu client " + id +" erstellt");
		}
		catch(IOException e)
		{System.out.println("** Fehler beim erstellen der Verbindung: " + e);}

		return true;
	}

	//beendet eine Verbinung zu einem Client
	//und löscht diesen aus dem Vector
	public boolean removeClient(int clientId)
	{
		System.out.println ("** connection zu client: " + clientId + " abgebrochen.");

		try
			{clientList.removeElementAt(clientId);}
		catch (Exception e)
			{System.out.println ("Fehler beim Entfernen eines Clients\nClientID: " + clientId + "\nClientListrSize: " + clientList.size());}

		return true;
	}

	//sendet einen String an alle Clients
	//public void boardcaste(String line, int id)
	public void processLine(String line)
	{
		try
		{
			for (int x=0;x<=clientList.size()-1;x++)
			{
				PrintWriter out = (PrintWriter) clientList.elementAt(x);
				out.println(line);
				out.flush();
				System.out.println("** client send \"" + line + "\" to client "+ x);
			}
		}
		catch (Exception e)
			{System.out.println ("Fehler beim senden der Nachricht");}
	}

	public void endConnection(int Id)
	{
		removeClient(Id);
	}

	//die main parst die argumente und startet den Server
	public static void main(String[] args)
	{
		CChatServer srv;
		int port;

		System.out.println("** chatServer 0.1 by knt at 04.03.01 **");
		System.out.println("***************************************\n");

		if (args.length < 1)
		{// zuwenig oder falsche Argumente
			System.out.println("Du hast zuwenig Argumente um mich zu nutzen.\n Aufruf:\tserver port");
			return;
		}

		port = Integer.parseInt(args[0]);

		srv = new CChatServer(port);

		srv.listen();

		System.out.println("/nTschau!");
	}
}
-CChatClient-
Code:
import java.io.*;
import java.net.*;

public class CChatClient implements IListenAble
{
	public static void main(String[] args)
	{
		if (args.length < 2)
		{// zuwenig oder falsche Argumente
			System.out.println("Du hast zuwenig Argumente um mich zu nutzen.\n Aufruf:\tclient ip port");
			return;
		}

		String ip = args[0];
		int port = Integer.parseInt(args[1]);

		CChatClient obj = new CChatClient();
		obj.listen(ip, port);
		System.out.println("Tschau!\n");

	}


	public void listen(String ip, int Port)
	{
		Socket serverSock;
		BufferedReader stIN;
		String line;
		System.out.println("HI!\n");

		try
		{
			serverSock = new Socket(ip, Port);

			PrintWriter out = new PrintWriter(serverSock.getOutputStream());

			Thread t = new Thread(new CListener(serverSock, this, 0));
			t.start();

			stIN = new BufferedReader(new InputStreamReader(System.in));
			while((line = stIN.readLine()) != null)
			{
				out.println(line);
				out.flush();
			}


		}
		catch(IOException ioe)
		{System.out.println("Fehler beim verbinden zum Server.");}

	}


	public void processLine(String line)
	{
		System.out.println("##:" +line);
	}

	public void endConnection(int id)
	{
		System.out.println("Verbindung zum Server verloren...");
	}
}
-CListener-
Code:
import java.io.*;
import java.net.*;

public class CListener implements Runnable
{
	private BufferedReader in;
	private Socket clientSock;
	private IListenAble obj;
	private int id;

	CListener(Socket clientSock, IListenAble obj, int id) throws IOException
	{
		this.in = new BufferedReader(new InputStreamReader(clientSock.getInputStream()));
		this.clientSock = clientSock;
		this.obj = obj;
		this.id = id;
	}

	public void run()
	{
		String line;
		try
		{
			while((line = in.readLine()) != null)
			{
				this.obj.processLine(line);
			}
		}
		catch(IOException ioe)
		{}
		this.obj.endConnection(this.id);
	}
}
-IListenAble-
Code:
public interface IListenAble
{
	public void processLine(String line);
	public void endConnection(int Id);
}
Jedes Bit dieses Codes ist frei.Es darf tuen was es will und wann es will. Sollte ein Bit Fehlerhaft sein so bitte ich es es mir zu sagen. Sollte ein Bit so fehlerhaft sein das es mir nicht mehr sagen kann das es fehlerhaft ist so bitte ich die nachbarBits mir von dem Fehler zu berichten.



Und hier noch ein applet oben drein noch open source ;)
http://sourceforge.net/projects/chiachat
web solutions für jedermann ;) Hp in Kürze Online

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »heinervdm« (6. Februar 2005, 10:47)

 

a.d-

Doppel-As

Dabei seit: 19.02.2004

Beiträge: 108

 

4 Zum Seitenanfang

Sonntag, 6. Februar 2005, 19:08

nein hab noch nie was mit java zu tun gehabt und wenn ich mir das so überlege wird es auch dabei bleiben... es ist doch eine nummer zu groß für mich... :D

ich wollte eigetlich einen chat programmieren, reine übungsache, mit php und javascript will das nicht so hinhaun wie ich es haben möchte... dann hab ich mir überlegt mal in java einen blick rein zu werfen...

kann man mit java auch chats programmieren die auf eine mysql-datenbank bzw. auf eine textdatei zugreifen, sowas wär mir nämlich lieber als clients usw.
[COLOR=skyblue][SIZE=20][B][URL=http://www.adonis-art.at.tf]MY WEBSITE[/URL][/B][/SIZE][/COLOR]