Hallo zusammen
ich habe einen Java-server und einen Flash-clients (1 Personen-Chat).
Ich sende nun vom Client einen Text, der Server sendetet den Text an den Client zurück.
wenn ich nun beim server die daten über den normalen OutputStream an den Flash-client übergebe, funktioniert alles Prima. wenn ich aber beim Java-Server den BufferedWriter mit der write()-funktion verwende und einen String sende (nicht wie beim OutputStream wo es nur bytes sind) , empfängt der client keine Daten mehr.
Was mache ich falsch??
Hoffe es kann mir jemand helfen, danke
gruss Danamer
Hauptserver:
Thread:
ich habe einen Java-server und einen Flash-clients (1 Personen-Chat).
Ich sende nun vom Client einen Text, der Server sendetet den Text an den Client zurück.
wenn ich nun beim server die daten über den normalen OutputStream an den Flash-client übergebe, funktioniert alles Prima. wenn ich aber beim Java-Server den BufferedWriter mit der write()-funktion verwende und einen String sende (nicht wie beim OutputStream wo es nur bytes sind) , empfängt der client keine Daten mehr.
Was mache ich falsch??
Hoffe es kann mir jemand helfen, danke
gruss Danamer
Hauptserver:
Code:
import java.io.*;
import java.net.*;
public class StartServer {
static Thread_connection[] clients;
static final int MAXSOCKET = 10;
ServerSocket server;
public StartServer() {
try {
server = new ServerSocket(1234);
} catch (IOException e1) {
e1.printStackTrace();
}
clients = new Thread_connection[MAXSOCKET];
int i = 0;
while (true) {
Socket socket = null;
try {
System.out.println("warten auf einen weiteren Client");
socket = server.accept();
// Thread starten
clients[i] = new Thread_connection(socket, this);
new Thread(clients[i]).start();
i++;
} catch (IOException e) {
e.printStackTrace();
} finally {
if (socket != null) {
}
}
}
}
public void broadCast(String msg) {
for (int i = 0; i < clients.length; i++) {
clients[i].send(msg);
}
}
}
Thread:
Code:
import java.io.*;
import java.net.*;
public class Thread_connection implements Runnable {
private Socket client_socket = null;
private BufferedReader reader;
private BufferedWriter writer;
private StartServer server;
public Thread_connection(Socket socket, StartServer server) {
System.out.println("Neuer Thread gestarted");
client_socket = socket;
this.server = server;
try {
reader = new BufferedReader(new InputStreamReader(client_socket.getInputStream()));
writer = new BufferedWriter(new OutputStreamWriter(client_socket.getOutputStream()));
} catch (IOException e) {
e.printStackTrace();
}
}
public void run() {
try {
System.out.println("Verbindung wurde hergestellt mit "+ client_socket.getInetAddress());
int temp = 1;
do{
temp = reader.read();
if(temp > -1){
server.broadCast(String.valueOf(temp));
}
}while(temp>-1);
} catch (Exception e) {
e.getStackTrace();
} finally {
try {
if (client_socket != null) {
client_socket.close();
System.out.println("Verbindung wurde getrennt");
}
} catch (Exception e) {
e.getStackTrace();
}
}
}
public void send(String msg){
try {
System.out.println("Daten gesendet");
writer.write(msg);
writer.flush();
} catch (IOException e) {
e.printStackTrace();
}
}
}