Font
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]1041[/thread]

chat-server: problem mit java-code



<< >> 2 entries, 1 page
pq
 2004-01-23 12:22
#10583 #10583
User since
2003-08-04
12208 articles
Admin1
[Homepage]
user image
sagst du auch zum automechaniker: "Ich hab mir hier dieses Auto gekauft, aber es funzt nicht. Hier ist es,
irgendwo dadrin muss der fehler liegen."
oder sagst du eventuell noch sowas wie: "Es startet nicht", "es macht so komische Geräusche", etc.
?

soll heissen: was "funzt" nicht? fliegt dein computer in die luft? stürzt der browser ab? ist das applet
nicht zu sehen? ist das applet zu sehen, aber du kriegst keine verbindung zum chatserver? was sagt
die java-konsole deines browsers?
fragen über fragen...\n\n

<!--EDIT|pq|1074853725-->
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
Froschpopo
 2004-01-23 07:01
#10584 #10584
User since
2003-08-15
2653 articles
BenutzerIn
[default_avatar]
hi, ich habe auf http://java.seite.net/chat eine anleitung für einen Chatserver in Java gefunden. Habe dann auch malausprobiert und compiliert, funzte aber nicht. Da bei javac kein fehler gemeldet wird, muss es irgendwie an dem Quelltext liegen!
Der Server (chatserver.java)
Code: (dl )
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
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 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();

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&lt;connections.size(); i++)
{
you = (connection) connections.elementAt(i);
you.out.println(msg);
}
}
}

Die Connection Klasse (connection.java)
Code: (dl )
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
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();
}


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);
}
}
}

das Applet:
Code: (dl )
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
import java.net.*;
import java.io.*;
import java.awt.*;
import java.applet.*;

public class chatapplet extends Applet implements Runnable
{
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();
}
}


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

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


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");
}
}

irgendwo darin liegt der fehler
<< >> 2 entries, 1 page



View all threads created 2004-01-23 12:22.