chrigu
02-05-2009, 13:10
Hallo,
Ich muss zwischen einem Client und einem Server beliebige Byte-Streams hin und her schicken.
Komischerweise sendet der Client die Daten erst, wenn ich das Programm beende, oder den Stream explizit schliesse.
Kann mir jemand weiterhelfen?
Client
package test;
import java.io.IOException;
import java.io.PrintStream;
import java.net.Socket;
import java.net.UnknownHostException;
public class Client {
public static void main(String[] args) throws UnknownHostException, IOException {
Socket socket = new Socket("localhost", 55555);
PrintStream out = new PrintStream(socket.getOutputStream(), true);
while (true) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {}
byte[] stream = "hallo".getBytes();
out.write(stream);
out.flush();
}
}
}
Server
package test;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public static void main(String[] args) throws IOException {
ServerSocket serverSocket = new ServerSocket(55555);
Socket socket = serverSocket.accept();
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
while (true) {
try {
Thread.sleep(100);
} catch (InterruptedException e) {}
if (in.ready()) {
byte[] stream = in.readLine().getBytes();
System.out.println(new String(stream));
}
}
}
}
Grüsse,
Chrigu
Ich muss zwischen einem Client und einem Server beliebige Byte-Streams hin und her schicken.
Komischerweise sendet der Client die Daten erst, wenn ich das Programm beende, oder den Stream explizit schliesse.
Kann mir jemand weiterhelfen?
Client
package test;
import java.io.IOException;
import java.io.PrintStream;
import java.net.Socket;
import java.net.UnknownHostException;
public class Client {
public static void main(String[] args) throws UnknownHostException, IOException {
Socket socket = new Socket("localhost", 55555);
PrintStream out = new PrintStream(socket.getOutputStream(), true);
while (true) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {}
byte[] stream = "hallo".getBytes();
out.write(stream);
out.flush();
}
}
}
Server
package test;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public static void main(String[] args) throws IOException {
ServerSocket serverSocket = new ServerSocket(55555);
Socket socket = serverSocket.accept();
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
while (true) {
try {
Thread.sleep(100);
} catch (InterruptedException e) {}
if (in.ready()) {
byte[] stream = in.readLine().getBytes();
System.out.println(new String(stream));
}
}
}
}
Grüsse,
Chrigu