【问题标题】:"SocketTimeoutException: failed to connect to" only from the Samsung S5 device仅来自三星 S5 设备的“SocketTimeoutException: failed to connect to”
【发布时间】:2019-05-29 20:53:45
【问题描述】:

我的 TCP 通信应用程序有一个非常奇怪的问题。 我很久以前就成功了,我从来没有遇到过任何问题。 这是一个通过 TCP 套接字发送和接收数据包的简单方法。

但是不知道怎么回事,这周我在三星Galaxy S5上跑了,和服务器建立连接没有成功。

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

总是返回:

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

但最疯狂的是,它通过网络服务发现(UDP)成功找到了服务器的IP地址。所以问题不是来自 Wi-Fi 网络,它只发生在这个设备(三​​星 S5)上。很奇怪。有什么想法吗?

【问题讨论】:

    标签: android sockets tcp samsung-mobile s5


    【解决方案1】:

    如果您使用的是旧设备,您可能需要启用 TLS 1.2 版。

    您可以使用 Okhttpclient 构建器来完成此操作。

     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;
        }
    

    【讨论】:

      猜你喜欢
      • 2018-10-04
      • 2020-02-06
      • 2015-08-04
      • 2018-07-30
      • 2021-07-07
      • 2020-12-07
      • 1970-01-01
      • 2020-11-03
      • 2021-01-22
      相关资源
      最近更新 更多