Witam.
Mam problem z wysłaniem listy z serwera do klienta. Problem polega na tym, że po wypisaniu listy z serwera do klienta, program nie "restartuje się" tylko dalej można wpisywać znaki, które powinny być wysyłane na serwer ale niestety tak nie jest. Nie mam już pomysłów jak to zrobić.
Server:
package server.programowanie.sieciowe;
import java.io.*;
import java.net.*;
import java.util.ArrayList;
public class Server {
public static final int PORT = 7;
public static void main(String[] args) throws IOException, ClassNotFoundException {
ArrayList bookshop;
bookshop=OptionsBookstore.load();
ServerSocket serverSocket = new ServerSocket(PORT);
System.out.println("Uruchomiono serwer: "
+ serverSocket);
try {
System.out.println("Oczekiwanie na polaczenie...");
Socket socket = serverSocket.accept();
BufferedReader in = null;
PrintWriter out = null;
try {
in = new BufferedReader(
new InputStreamReader(socket.getInputStream()));
out = new PrintWriter(new BufferedWriter(
new OutputStreamWriter(
socket.getOutputStream())), true);
System.out.println("Otwarto polaczenie: " + socket);
while (true) {
String text = in.readLine();
if (text.equals("#"))
break;
else if(OptionsBookstore.showReply(out,text,bookshop)); //tutaj zaczyna się problem
else
out.println("Brak zapytania!");
}
} finally {
System.out.println("Zamykanie ...");
try {
if (in != null) {
in.close();
}
if (out != null) {
out.close();
}
}catch (Exception e) {
}
socket.close();
}
} finally {
serverSocket.close();
}
}
}
Klient
package programowaniesieciowe;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
public class Client {
public static void main(String[] args) {
BufferedReader in = null;
PrintWriter out = null;
try {
BufferedReader keyboard = new BufferedReader(
new InputStreamReader(System.in));
Socket socket = new Socket("localhost", 7);
in = new BufferedReader(
new InputStreamReader(socket.getInputStream()));
out = new PrintWriter(socket.getOutputStream());
System.out.println("Nawiazano polaczenie z: "
+ socket.getInetAddress());
while (true) {
System.out.print("> ");
String text = keyboard.readLine();
out.println(text);
out.flush();
if (text.equals("#")) {
break;
}
String server; //tu pętla która się nie zamyka
while(((server=in.readLine()) !=null)) //przez co pętla główna pętla while
System.out.println("Server: " + server); //nie działa od nowa
}
} catch (IOException e) {
System.err.println(e);
} finally {
try {
if (in != null) {
in.close();
}
if (out != null) {
out.close();
}
} catch (IOException e) {
}
}
}
}