[ 
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]

Reply via email to