Я пытался решить проблему довольно долго и, наконец, решил воспользоваться помощью экспертов. Я разработал сервер-клиентское приложение, используя Socket Programming, и мой клиент имеет возможность успешно подключиться к Серверу. Теперь я пытаюсь отправить объект через сокет с сервера на основе запроса от клиента, мой сервер может поймать запрос, однако ответ (writeObject (...)), отправленный сервером, не может связаться с клиентом ,
сервера фрагмент кода:Клиент не принимает объект, отправленный сервером поверх объекта ObjectStream в Java
ServerSocket sSocket = new ServerSocket(socketNumber);
ArrayList<LoginPassword> logIn = new ArrayList<>();
Socket cSocket = sSocket.accept();
ObjectOutputStream outputStream = new ObjectOutputStream(cSocket.getOutputStream());
outputStream.flush();
ObjectInputStream inputStream = new ObjectInputStream(cSocket.getInputStream());
LoginPassword lp1 = new LoginPassword("admin","admin");
logIn.add(lp1);
outputStream.writeObject(logIn);
outputStream.flush();
Clinet код сниппета:
Socket client = new Socket(InetAddress.getLocalHost(),socketNumber);
ArrayList<LoginPassword> myList = new ArrayList<>();
ObjectOutputStream outputStream = new ObjectOutputStream(client.getOutputStream());
outputStream.flush();
ObjectInputStream inputStream = new ObjectInputStream(client.getInputStream());
//Wait untill the data is available
myList = (ArrayList<LoginPassword>) inputStream.readObject();
В моем случае, клиенты readObject() никогда не вызывается, так как он не в состоянии обнаружить данные, посланные от Server.Any помогите пожалуйста.
Почему вы открываете InputStream на сервере, так как вы ничего не читаете. То же самое для клиента: почему вы открываете OutputStream, так как вы ничего не пишете? –
Это всего лишь фрагмент кода для объяснения моей проблемы. Я использую inputStream и OutputStream на стороне клиента и сервера для отправки данных взад и вперед во время работы приложения. – Rambo772
Удалите их первым, и ваш код должен работать нормально. Затем верните их, но в правильном порядке клиент, который первым читает, должен сначала открыть входной поток, прочитать, а затем записать. Сначала сервер, который пишет, должен сначала открыть выходной поток, записать, а затем открыть входной поток. –