hej,
mam problem z tym, aby wiadomosci od klienta i servera pojawialy sie niezaleznie od siebie, tzn. od wyslania wiadomosci od drugiego rozmowcy, a tak sie dzieje teraz. Bardzo prosze o sugestie gdzie tkwi blad :] (domyslam sie ze w tym, ze umieszczam wyswietlanie komunikatu w petli oczekujacej na wyslanie swojego, ale wyrzucenie tego poza nia nie dziala)
Klient:
import java.net.*;
import java.io.*;
public class Client {
public static int port = 9994;
public static String hostname = "hostname";
public static void main(String[] args) throws IOException {
Socket server = null;
PrintWriter output = null;
BufferedReader input = null;
try {
server = new Socket(hostname, port);
output = new PrintWriter(server.getOutputStream(), true);
input = new BufferedReader(new InputStreamReader(server.getInputStream()));
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
BufferedReader stdInput = new BufferedReader(new InputStreamReader(System.in));
String msg;
while ((msg = stdInput.readLine()) != null) {
output.println(msg);
System.out.println("server: " + input.readLine());
}
output.close();
input.close();
stdInput.close();
server.close();
}
}
Serwer:
import java.net.*;
import java.io.*;
public class Server {
public static int port = 9994;
public static void main(String[] args) throws IOException {
ServerSocket server = null;
try {
server = new ServerSocket(port);
} catch (IOException e) {
e.printStackTrace();
}
Socket client = null;
try {
client = server.accept();
} catch (IOException e) {
e.printStackTrace();
}
PrintWriter output = new PrintWriter(client.getOutputStream(),true);
BufferedReader input = new BufferedReader(new InputStreamReader(client.getInputStream()));
BufferedReader stdInput = new BufferedReader(new InputStreamReader(System.in));
String msg;
while ((msg = stdInput.readLine()) != null) {
output.println(msg);
System.out.println("client: " + input.readLine());
}
output.close();
input.close();
client.close();
server.close();
}
}