“SocketTimeoutException: failed to connect to” only from the Samsung S5 device





.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ height:90px;width:728px;box-sizing:border-box;
}







0















I have a very strange issue with my TCP communication app.
I made it a long time ago and I never experienced any problem.
It's a simple send & receive packets through a TCP socket.



But I don't know how, this week I ran it on a Samsung Galaxy S5, and I did not succeed in establishing the connection with the server.



serverSocket.connect(new InetSocketAddress(mServerIPV6.getHostAddress(), Network.COMMUNICATION_PORT), (int) (3 * DateUtils.SECOND_IN_MILLIS));


always returns :



java.net.SocketTimeoutException: failed to connect to /fe80::d6ae:5ff:fe43:c6e9%wlan0%23 (port 60001) after 3000ms


but the craziest thing is that it succeed in finding the IP address of the server through the network service discovery (UDP). So the problem does not come from the Wi-Fi network and it only happens with this device (Samsung S5). Very strange. Any idea?










share|improve this question





























    0















    I have a very strange issue with my TCP communication app.
    I made it a long time ago and I never experienced any problem.
    It's a simple send & receive packets through a TCP socket.



    But I don't know how, this week I ran it on a Samsung Galaxy S5, and I did not succeed in establishing the connection with the server.



    serverSocket.connect(new InetSocketAddress(mServerIPV6.getHostAddress(), Network.COMMUNICATION_PORT), (int) (3 * DateUtils.SECOND_IN_MILLIS));


    always returns :



    java.net.SocketTimeoutException: failed to connect to /fe80::d6ae:5ff:fe43:c6e9%wlan0%23 (port 60001) after 3000ms


    but the craziest thing is that it succeed in finding the IP address of the server through the network service discovery (UDP). So the problem does not come from the Wi-Fi network and it only happens with this device (Samsung S5). Very strange. Any idea?










    share|improve this question

























      0












      0








      0








      I have a very strange issue with my TCP communication app.
      I made it a long time ago and I never experienced any problem.
      It's a simple send & receive packets through a TCP socket.



      But I don't know how, this week I ran it on a Samsung Galaxy S5, and I did not succeed in establishing the connection with the server.



      serverSocket.connect(new InetSocketAddress(mServerIPV6.getHostAddress(), Network.COMMUNICATION_PORT), (int) (3 * DateUtils.SECOND_IN_MILLIS));


      always returns :



      java.net.SocketTimeoutException: failed to connect to /fe80::d6ae:5ff:fe43:c6e9%wlan0%23 (port 60001) after 3000ms


      but the craziest thing is that it succeed in finding the IP address of the server through the network service discovery (UDP). So the problem does not come from the Wi-Fi network and it only happens with this device (Samsung S5). Very strange. Any idea?










      share|improve this question














      I have a very strange issue with my TCP communication app.
      I made it a long time ago and I never experienced any problem.
      It's a simple send & receive packets through a TCP socket.



      But I don't know how, this week I ran it on a Samsung Galaxy S5, and I did not succeed in establishing the connection with the server.



      serverSocket.connect(new InetSocketAddress(mServerIPV6.getHostAddress(), Network.COMMUNICATION_PORT), (int) (3 * DateUtils.SECOND_IN_MILLIS));


      always returns :



      java.net.SocketTimeoutException: failed to connect to /fe80::d6ae:5ff:fe43:c6e9%wlan0%23 (port 60001) after 3000ms


      but the craziest thing is that it succeed in finding the IP address of the server through the network service discovery (UDP). So the problem does not come from the Wi-Fi network and it only happens with this device (Samsung S5). Very strange. Any idea?







      android sockets tcp samsung-mobile s5






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Jan 3 at 9:22









      DenisDenis

      310521




      310521
























          1 Answer
          1






          active

          oldest

          votes


















          0














          If you're using older devices you may need to enable TLS version 1.2.



          You can do this with an Okhttpclient builder.



           public static OkHttpClient.Builder enableTls12OnPreLollipop(OkHttpClient.Builder client) {
          if (Build.VERSION.SDK_INT >= 16 && Build.VERSION.SDK_INT < 22) {
          try {
          SSLContext sc = SSLContext.getInstance("TLSv1.2");
          sc.init(null, null, null);
          client.sslSocketFactory(new Tls12SocketFactory(sc.getSocketFactory()));

          ConnectionSpec cs = new ConnectionSpec.Builder(ConnectionSpec.MODERN_TLS)
          .tlsVersions(TlsVersion.TLS_1_2)
          .build();

          List<ConnectionSpec> specs = new ArrayList<>();
          specs.add(cs);
          specs.add(ConnectionSpec.COMPATIBLE_TLS);
          specs.add(ConnectionSpec.CLEARTEXT);

          client.connectionSpecs(specs);
          } catch (Exception exc) {
          Log.e("OkHttpTLSCompat", "Error while setting TLS 1.2", exc);
          }
          }

          return client;
          }





          share|improve this answer
























            Your Answer






            StackExchange.ifUsing("editor", function () {
            StackExchange.using("externalEditor", function () {
            StackExchange.using("snippets", function () {
            StackExchange.snippets.init();
            });
            });
            }, "code-snippets");

            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "1"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














            draft saved

            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54019376%2fsockettimeoutexception-failed-to-connect-to-only-from-the-samsung-s5-device%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            0














            If you're using older devices you may need to enable TLS version 1.2.



            You can do this with an Okhttpclient builder.



             public static OkHttpClient.Builder enableTls12OnPreLollipop(OkHttpClient.Builder client) {
            if (Build.VERSION.SDK_INT >= 16 && Build.VERSION.SDK_INT < 22) {
            try {
            SSLContext sc = SSLContext.getInstance("TLSv1.2");
            sc.init(null, null, null);
            client.sslSocketFactory(new Tls12SocketFactory(sc.getSocketFactory()));

            ConnectionSpec cs = new ConnectionSpec.Builder(ConnectionSpec.MODERN_TLS)
            .tlsVersions(TlsVersion.TLS_1_2)
            .build();

            List<ConnectionSpec> specs = new ArrayList<>();
            specs.add(cs);
            specs.add(ConnectionSpec.COMPATIBLE_TLS);
            specs.add(ConnectionSpec.CLEARTEXT);

            client.connectionSpecs(specs);
            } catch (Exception exc) {
            Log.e("OkHttpTLSCompat", "Error while setting TLS 1.2", exc);
            }
            }

            return client;
            }





            share|improve this answer




























              0














              If you're using older devices you may need to enable TLS version 1.2.



              You can do this with an Okhttpclient builder.



               public static OkHttpClient.Builder enableTls12OnPreLollipop(OkHttpClient.Builder client) {
              if (Build.VERSION.SDK_INT >= 16 && Build.VERSION.SDK_INT < 22) {
              try {
              SSLContext sc = SSLContext.getInstance("TLSv1.2");
              sc.init(null, null, null);
              client.sslSocketFactory(new Tls12SocketFactory(sc.getSocketFactory()));

              ConnectionSpec cs = new ConnectionSpec.Builder(ConnectionSpec.MODERN_TLS)
              .tlsVersions(TlsVersion.TLS_1_2)
              .build();

              List<ConnectionSpec> specs = new ArrayList<>();
              specs.add(cs);
              specs.add(ConnectionSpec.COMPATIBLE_TLS);
              specs.add(ConnectionSpec.CLEARTEXT);

              client.connectionSpecs(specs);
              } catch (Exception exc) {
              Log.e("OkHttpTLSCompat", "Error while setting TLS 1.2", exc);
              }
              }

              return client;
              }





              share|improve this answer


























                0












                0








                0







                If you're using older devices you may need to enable TLS version 1.2.



                You can do this with an Okhttpclient builder.



                 public static OkHttpClient.Builder enableTls12OnPreLollipop(OkHttpClient.Builder client) {
                if (Build.VERSION.SDK_INT >= 16 && Build.VERSION.SDK_INT < 22) {
                try {
                SSLContext sc = SSLContext.getInstance("TLSv1.2");
                sc.init(null, null, null);
                client.sslSocketFactory(new Tls12SocketFactory(sc.getSocketFactory()));

                ConnectionSpec cs = new ConnectionSpec.Builder(ConnectionSpec.MODERN_TLS)
                .tlsVersions(TlsVersion.TLS_1_2)
                .build();

                List<ConnectionSpec> specs = new ArrayList<>();
                specs.add(cs);
                specs.add(ConnectionSpec.COMPATIBLE_TLS);
                specs.add(ConnectionSpec.CLEARTEXT);

                client.connectionSpecs(specs);
                } catch (Exception exc) {
                Log.e("OkHttpTLSCompat", "Error while setting TLS 1.2", exc);
                }
                }

                return client;
                }





                share|improve this answer













                If you're using older devices you may need to enable TLS version 1.2.



                You can do this with an Okhttpclient builder.



                 public static OkHttpClient.Builder enableTls12OnPreLollipop(OkHttpClient.Builder client) {
                if (Build.VERSION.SDK_INT >= 16 && Build.VERSION.SDK_INT < 22) {
                try {
                SSLContext sc = SSLContext.getInstance("TLSv1.2");
                sc.init(null, null, null);
                client.sslSocketFactory(new Tls12SocketFactory(sc.getSocketFactory()));

                ConnectionSpec cs = new ConnectionSpec.Builder(ConnectionSpec.MODERN_TLS)
                .tlsVersions(TlsVersion.TLS_1_2)
                .build();

                List<ConnectionSpec> specs = new ArrayList<>();
                specs.add(cs);
                specs.add(ConnectionSpec.COMPATIBLE_TLS);
                specs.add(ConnectionSpec.CLEARTEXT);

                client.connectionSpecs(specs);
                } catch (Exception exc) {
                Log.e("OkHttpTLSCompat", "Error while setting TLS 1.2", exc);
                }
                }

                return client;
                }






                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Jan 3 at 9:39









                Joshua BestJoshua Best

                15512




                15512
































                    draft saved

                    draft discarded




















































                    Thanks for contributing an answer to Stack Overflow!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54019376%2fsockettimeoutexception-failed-to-connect-to-only-from-the-samsung-s5-device%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    MongoDB - Not Authorized To Execute Command

                    How to fix TextFormField cause rebuild widget in Flutter

                    Npm cannot find a required file even through it is in the searched directory