Мой клиентский класс должен принимать 10 целых данных от пользователя и отправлять их на сервер. Сервер должен принять эти 10 номеров и отсортировать их. Затем он должен отправить массив обратно клиенту, и клиент должен распечатать их. Мой клиент код:Чтение и запись массива программирования сокетов int, java
public class TCPClient {
public static void main(String[] args) throws UnknownHostException, IOException {
int arr[]=new int[10];
int arrFromServer[]=new int[10];
BufferedReader inFromUser= new BufferedReader(new InputStreamReader(System.in));
Socket clientSocket = new Socket("localhost",6786);
DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream());
BufferedReader inFromServer = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
for(int i=0;i<10;i++)
arr[i]=Integer.parseInt(inFromUser.readLine());
for(int i=0;i<10;i++)
outToServer.writeInt(arr[i]);
for(int i=0;i<10;i++)
arrFromServer[i]=Integer.parseInt(inFromServer.readLine());
for (int i = 0; i < arrFromServer.length; i++) {
System.out.println("From Server::"+arrFromServer[i]);
}
clientSocket.close();
}
}
Мой код сервера:
public class TCPServer {
public static void main(String[] args) throws IOException {
int arrFromClient[]=new int[10];
ServerSocket welcomeSocket = new ServerSocket(6786);
while(true){
Socket connectionSocket = welcomeSocket.accept();
BufferedReader inFromClient = new BufferedReader(new InputStreamReader(connectionSocket.getInputStream()));
DataOutputStream outToClient = new DataOutputStream(connectionSocket.getOutputStream());
for(int i=0;i<10;i++)
{
arrFromClient[i]=Integer.parseInt(inFromClient.readLine());
}
Arrays.sort(arrFromClient);
for (int i = 0; i < arrFromClient.length; i++) {
outToClient.writeInt(arrFromClient[i]);
}
}
}
}
Когда я пытаюсь запустить код клиента продолжает приема чисел, пока не завершите программу вручную. В идеале после 10 входов он должен перейти на сервер, а сервер должен дать отсортированный массив.
Что не так с вышеуказанным кодом. Любая помощь будет оценена по достоинству. Заранее спасибо.
Подсказка: write'Int' против read'Line'. – Kayaman
Я получаю это :(Какой из них я должен использовать? Я использую readLine для чтения ввода от пользователя и writeInt, чтобы записать его на сервер. Это неправильно? – Pepper
'writeInt' не пишет строку. Оба метода объясняются в javadocs я рекомендую их читать. – Kayaman