Мне нужно отслеживать состояние устройства из моего приложения Java (пример устройства ip = 192.168.0.22 и порт 17000, монитор означает, что я отправляю каждый 1-секундный запрос и получаю данные как ответ). Мне нужно параллельно с этим отправлять на это устройство другие сообщения и получать ответы (на одном и том же ip и том же порту). Я создаю socket = new Socket (ipAddress, порт). Как добиться этого, я не получаю столкновение (мне нужно: я отправляю сначала, сначала получаю ответ, я посылаю второй, я получаю ответ со второго, я посылаю третье, я получаю ответ от третьего и т. Д.)?Java-параллельная отправка
ответ
Если меня не хватает чего-то,
- вы можете сделать каждый в отдельном потоке,
- или вы можете отправить запрос на все три розетки и ждать всех трех ответов.
- или вы могли бы спроектировать свой сервер одновременно с тремя запрошенными запросами. (Он может работать корректно). Отправьте три запроса одному соединению и подождите три ответа.
Последнее может быть самым эффективным решением.
Если ваша работа заботится о заказе, вы должны отправить данные запроса один за другим, в моем понимании, что вы имеете в виду, что вы получите столкновение, когда вы отправляете данные на устройство в одно и то же время, устройство ответит вам? не беспокойтесь, потому что сокет должен буферизировать, один для отправки и другой для получения.
Вы можете определить идентификатор типа запроса. Затем на стороне SocketServer реализации вы можете проанализировать идентификатор и передать запрос новому потоку, используемому для работы с этим типом запроса. Таким образом, в вашем случае вы определяете 3 разных обработчика, и каждый тип получает запрос, который вы выбираете обработчику для обработки запроса. Каждый запрос будет выполнен с использованием одного и того же Socket.
Однако из последнего предложения:
мне нужно: Я посылаю первый, я получаю ответ от первого, я посылаю вторым я получаю ответ от второго, я посылаю третьим я получить ответ от третьего и т. д.
Это не похоже на параллельные запросы. Скорее это звучит так, будто вы хотите запускать их один за другим, то есть второй запрос зависит от ответа первого запроса? Если это так, вы просто используете один и тот же сокет (не создавайте новый для каждого запроса). Тогда логика в коде запроса будет просто отправить запрос 1, дождаться ответа 1, затем отправить запрос 2 и т. Д. И т. Д.
- 1. Отправка с AJAX и отправка заявки
- 2. Отправка формы и отправка по почте
- 3. Отправка сеанса
- 4. Отправка Keystroke
- 5. Отправка калькулятора
- 6. Отложенная отправка?
- 7. Отправка SMS
- 8. Отправка журнала
- 9. Отправка сертификата
- 10. Отправка ArrayList
- 11. Отправка писем?
- 12. Отправка MouseEvent
- 13. Отправка вложений
- 14. Отправка форм
- 15. Отправка sms после отклонения вызова - отправка нескольких раз
- 16. Что лучше: отправка багги или вообще не отправка этой функции?
- 17. API POST-вызовы - отправка данных навалом и отправка данных поочередно
- 18. Excel Автоматическая отправка писем через Outlook Случайно НЕ Отправка
- 19. php: отправка слайдов или отправка по электронной почте
- 20. Отправка кликов мышью/отправка координат с помощью библиотеки Oblita/Interception?
- 21. выпуск отправка отправка посылками подтверждение о получении письмо
- 22. Ошибка Node.js Отправка потока в Mplayer, отправка файла Works Fine
- 23. Отправка CSV через web в R и отправка результатов назад
- 24. Отправка буфера через Boost Сервер ASIO - отправка неверных данных
- 25. Отправка всем или Отправка одному человеку в программе Server/Client
- 26. WinAPI, отправка/отправка сообщений с 64-битными значениями (wParam, lParam)
- 27. Отправка формы с enter
- 28. Отправка только имени пользователя
- 29. Продвинутая форма JQuery Отправка
- 30. Отправка приложения Apple Watch
Это UDP или TCP? – Guillaume