Я новичок в java программировании сокетов. Пока я хочу создать сеть связи между сервером и клиентом, и я сделал это:
-Server отправил список файлов клиенту. -Клиент получил список и отобразил его в алфавитном порядке и пронумеровал -Клиент просит пользователя выбрать файл из списка
- Теперь я хочу, чтобы сервер получил выбор пользователя от клиента, а затем отправил файл just клиенту, чтобы отобразить его
!! Пока я не написал System.out.println(in.readLine());
все работает файл. После этого, когда я запускаю и сервер, и клиент, он ничего не появляется на выходе. Любая помощь ???
Код сервера:
public static void main(String[] args) {
ArrayList<String> servListOfFiles = new ArrayList<String>();
File folder = new File("src/serverdata");
File[] files = folder.listFiles();
for (File f: files){
if(f.isFile()){
servListOfFiles.add(f.getName());
}
}
try {
ServerSocket serverSocket = new ServerSocket(2345);
Socket clientSocket = serverSocket.accept();
BufferedReader in = new BufferedReader(newInputStreamReader(clientSocket.getInputStream()));
PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
out.println(servListOfFiles);
out.flush();
System.out.println(in.readLine());
} catch (IOException ex) {
System.out.println(ex.getMessage());
}
}
Код клиента:
public static void main(String[] args) {
try {
Socket socket = new Socket("localhost", 2345);
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
ArrayList clListOfFiles = new ArrayList<String>();
String line = new String();
while ((line = in.readLine()) != null) {
String[] tokens = line.split(",");
for (String t : tokens) {
clListOfFiles.add(t);
}
Collections.sort(clListOfFiles);
}
ArrayList<String> finalList = new ArrayList();
for (int i = 0; i < clListOfFiles.size(); i++) {
System.out.println(((i + 1) + ".") + clListOfFiles.get(i));
Scanner sc = new Scanner(System.in);
System.out.println("Choose the number of the file:");
out.println(sc.nextLine());
} catch (IOException ex) {
ex.getMessage();
}
}
}