[
https://issues.apache.org/jira/browse/DIRMINA-1137?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17301161#comment-17301161
]
Jonathan Valliere commented on DIRMINA-1137:
--------------------------------------------
Alex, you need a UDP Server open somewhere otherwise you get the
PortUnreachable. This is not caused by MINA but rather the OS-socket.
{code:java}
private static Logger log = LoggerFactory.getLogger(MinaTest.class);
public static void main(String[] args) throws IOException {
InetSocketAddress sock = new InetSocketAddress(5555);
DatagramChannel server = DatagramChannel.open();
server.bind(sock);
server.configureBlocking(true);
NioDatagramConnector connector = new NioDatagramConnector();
connector.setHandler(new Handler());
connector.getFilterChain().addLast("logger", new
LoggingFilter());
connector.getFilterChain().addLast("codec", new
ProtocolCodecFilter(new TextLineCodecFactory()));
DatagramSessionConfig dcfg = connector.getSessionConfig();
dcfg.setReuseAddress(true);
dcfg.setCloseOnPortUnreachable(false);
connector.connect(sock); // Port here, where nobody is listening
log.info("Started.");
while (true) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
connector.broadcast("Message");
log.info("-----------> Send to " +
connector.getManagedSessionCount() + " sessions.");
}
}
{code}
> PortUnreachable not check while writing to socket
> -------------------------------------------------
>
> Key: DIRMINA-1137
> URL: https://issues.apache.org/jira/browse/DIRMINA-1137
> Project: MINA
> Issue Type: Bug
> Components: Core
> Affects Versions: 2.1.4
> Environment: Java 1.8, Unix/Windows
> Reporter: Alexander B
> Priority: Critical
> Attachments: exceptionstack.png, minatest2.7z
>
>
> Hi guys,
> My intention is to send udp package to a specific ip and port (even if there
> is not receiver). Me - as the sender - do not have any knowledge about
> (existing) receivers. After receiving a "unreachable port" package back to
> myself (because no receiver exists), the session was closed automatically.
> In your class AbstractPollingIoProcessor from lines 1108ff. in such a case a
> UnreachablePortException was thrown, catched and therefore in line 1112 the
> session was closed.
> In contrast to this, while reading from a socket (lines 560ff.), you are
> distinguishing cases with and without the flag CloseOnPortUnreachable from
> the sessionConfig. [I am not quite sure about my statement here]
> Can you explain, why this was not done at the "writing"-process? Or was there
> anything I missunderstood?
> Thanks
> Alex
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]