Документация кажется довольно ясной о setSoTimeout
назначении:
вызовом receive () для этого DatagramSocket будет блокировать только на это время
Во-первых, он не имеет ничего общего с send
, а во-вторых, это только тайм-аут, если он блокируется на определенное время.
Если вы хотите надежности, используйте TCP.Если вам абсолютно необходимо / хотите использовать UDP, вам придется разработать собственный механизм обеспечения надежности.Вот еще один вопрос об этой конкретной проблеме:
Что вы используете, когда вам нужен надежный UDP?
В основном это действительно зависит от того, что вы делаете, потому что есливам нужно универсальное решение, в итоге вы заново изобретаете TCP!