NDK를 사용하여 Socket 통신을 구현하려 합니다.
아래와 같이 SocketClient를 스마트폰에 설치후 실행시 socket(AF_INET, SOCK_DGRAM, 0);
가 -1을 리턴합니다.
고수님들의 도움 부탁드립니다.
1. 아래는 SocketClient.cpp 입니다.
-----------------------------------------------------
JNIEXPORT jint JNICALL
Java_org_example_ndk_HelloNniActivity_add(JNIEnv* env, jobject obj, jint x, jint y)
{
int sockfd;
struct data add_data;
struct sockaddr_in serveraddr, clientaddr;
clilen = sizeof(clientaddr);
sockfd = socket(AF_INET, SOCK_DGRAM, 0); <- 리턴값이 계속 -1로 떨어지네요
if (sockfd < 0)
{
return sockfd;
}
return 1;
}
2. 아래는 AndroidManifest.xml 입니다.
-----------------------------------------------------
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.example.ndk"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="10" />
<use-permission android:name="android.permission.INTERNET"></use-permission>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:name=".HelloNniActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
3. 아래는 Activity.java 입니다.
-----------------------------------------------------
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView tv = new TextView(this);
int x = 0;
int y = 0;
int z = add(x, y);
tv.setText("The Result is " + z);
setContentView(tv);
}
// A native function
public native String stringFromJNI();
public native int add(int x, int y);
static{
System.loadLibrary("SocketClient");
}
4. 아래는 Android.mk 입니다.
-----------------------------------------------------
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := NFCSendSvr
LOCAL_SRC_FILES := NFCSendSvr.cpp
include $(BUILD_SHARED_LIBRARY)




수정했습니다.
Access 문제였던 것을... 헥헥~~~ ㅜㅡ