Я реализовал чат в Java с UDP. У меня есть один поток, который отправляет данные списка массивов другому клиенту и один поток, получающий данные от другого клиента. Список массивов может быть заполнен методом.UDP Packet loss Fix
Чтобы отправить сообщение, из списка массивов выбирается байт [], его длина отправляется, а затем байты отправляются.
Теперь я думаю о потере пакетов. Как я могу реализовать исправление для этого? Отправка сообщения назад была бы очень неэффективной. Я могу отправить сообщение обратно, если получатель не получил сообщение, потому что я знаю длину сообщения, но для этого мне понадобится второй сокет для обоих клиентов, потому что приемник и отправитель являются двумя потоками. Другая проблема заключается в том, что происходит, когда пакет с длиной данных теряется, а пакет данных считается длиной.
Может ли кто-нибудь помочь мне в реализации этого?
(TCP это не решение, потому что я хотел бы сделать UDP перфорирования)
Тот факт, что вы любите делать перфорирование отверстий UDP, не является основанием для того, чтобы не использовать TCP, а тот факт, что есть два потока, не является основанием для требования второго сокета. – EJP