java - 在 Android Native 应用程序中,无法创建客户端套接字。错误代码 :14 Unable to create socket: Permission denied

标签 java android sockets java-native-interface native

我创建了一个 Android 应用程序,该应用程序调用 native 代码中的方法。我无法创建套接字错误。以下代码编译为 libconnect.so。我已经使用 (System.loadLibrary("connect") 在 android 应用程序中加载了这个库。

#include<gio/gio.h>
#include<glib.h>
#include<android/log.h>
#include "connect.h"

int connect()
{
    GSocketConnection *connection=NULL;
    GSocketClient *client;
    GSocketAddress *address;
    GCancellable *cancellable=NULL;
    GError *error=NULL;
    address = g_network_address_new("192.168.0.1",8080);
    if(address == NULL)
        __android_log_print(6,"Connect Method","Address is not valid");
    client = g_socket_client_new();

    connection = g_socket_client_connect(client, (GSocketConnectable *)address, cancellable, &error);
    __android_log_print(6,"Connect Method","Connecting... ");
    if(connection == NULL)
        __android_log_print(6,"Connect Method","Connection is null");
    if(error != NULL)
        __android_log_print(6,"Connect Method","Error code: %d , Error msg: %s",error->code,error->message);
    return 0;
}

我收到以下日志:

12-31 11:38:18.032: E/Connect Method(2330): Connecting... 
12-31 11:38:18.032: E/Connect Method(2330): Connection is null
12-31 11:38:18.032: E/Connect Method(2330): Error code: 14 , Error msg: Unable to create socket: Permission denied

我有一个运行在 192.168.0.1 端口 8080 的服务器。我需要应用程序连接到服务器并建立 TCP 连接。错误代码 14 说明了什么?如何解决这个错误?

最佳答案

应该在 AndroidManifest.xml 中添加“android.permission.INTERNET”和“android.permission.ACCESS_NETWORK_STATE”android 权限。

<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>

关于java - 在 Android Native 应用程序中,无法创建客户端套接字。错误代码 :14 Unable to create socket: Permission denied,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27717053/

相关文章:

sockets - 仅在混杂模式下接收的 UDP 数据包

c++ - 通过套接字将数据作为字符串发送的好方法是什么?

java - 资源定位器上的 Jaxrs 过滤器

linux - Telnet 套接字网关到 Coldfusion 事件网关以连接到 Asterisk AMI

java - 加载 jar 时出错

android - 访问无线和网络设置页面

android - Gradle :app:preDexDebug error Android Studio Project

Android SetInexactRepeating 根本没有触发

Java BufferedWriter 不工作

javax.servlet.LocalStrings - 缺少资源