代码具体如下:在红色部分执行时,出现错误。
错误在最下面红色部分。
//----------------------------------Socket Config-------------------------------
int tcp_socket = socket(PF_INET, SOCK_STREAM, 0);
if(tcp_socket < 0){
return (*env)->NewStringUTF(env, "ERROR CREATING SOCKET");
}
//-----------------------------------End Socket Config---------------------------
__android_log_print(ANDROID_LOG_DEBUG, "bug", "tcp_socket return value %d", tcp_socket);
//-----------------------------------Server Config-------------------------------
//const char* server_host = "192.168.112";
unsigned short server_port = 9901; struct sockaddr_in server_tcp_addr;
memset(&server_tcp_addr, 0, sizeof(struct sockaddr_in));
server_tcp_addr.sin_family = AF_INET;
server_tcp_addr.sin_port = htons(server_port);
server_tcp_addr.sin_addr.s_addr = inet_addr("192.128.1.112");
//-----------------------------------End Server Config------------------------------- __android_log_print(ANDROID_LOG_DEBUG, "bug", "tcp_socket Connect Socket %d", 1); int connect_result = connect(tcp_socket,(struct sockaddr*)&server_tcp_addr, sizeof(server_tcp_addr));
//int connect_result = connect(tcp_socket,(struct sockaddr*)&server_tcp_addr, sizeof(struct sockaddr_in)); __android_log_print(ANDROID_LOG_DEBUG, "bug", "tcp_socket connect result %d", connect_result); if(connect_result < 0){ //fails here
__android_log_print(ANDROID_LOG_DEBUG, "bug", "tcp_socket Connect Socket %s", "2");
close(tcp_socket);
return (*env)->NewStringUTF(env, "ERROR CONNECTING TO SERVER");
}
char* message = "hello from android!";
int send_count = send(tcp_socket, &message, sizeof(message), 0); __android_log_print(ANDROID_LOG_DEBUG, "bug", "tcp_socket send_count %d", send_count); return (*env)->NewStringUTF(env, "TCP message sent!");01-03 19:53:52.076: WARN/ActivityManager(70): Launch timeout has expired, giving up wake lock!
01-03 19:53:54.893: WARN/ActivityManager(70): Activity idle timeout for HistoryRecord{4062f710 com.example.hellojni/.HelloJni}
01-03 19:54:00.234: DEBUG/dalvikvm(387): GC_EXPLICIT freed 3K, 54% free 2537K/5511K, external 1625K/2137K, paused 259ms
01-03 19:54:05.415: DEBUG/dalvikvm(134): GC_EXPLICIT freed 54K, 49% free 2974K/5767K, external 4681K/5342K, paused 255ms
01-03 19:54:10.553: DEBUG/dalvikvm(248): GC_EXPLICIT freed 6K, 54% free 2546K/5511K, external 1625K/2137K, paused 296ms
01-03 19:56:55.015: DEBUG/bug(457): tcp_socket connect result -1
01-03 19:56:55.015: DEBUG/bug(457): tcp_socket Connect Socket 2
01-03 19:56:55.986: INFO/ActivityManager(70): Displayed com.example.hellojni/.HelloJni: +3m13s285ms
01-03 19:57:54.206: DEBUG/SntpClient(70): request time failed: java.net.SocketException: Address family not supported by protocol
错误在最下面红色部分。
//----------------------------------Socket Config-------------------------------
int tcp_socket = socket(PF_INET, SOCK_STREAM, 0);
if(tcp_socket < 0){
return (*env)->NewStringUTF(env, "ERROR CREATING SOCKET");
}
//-----------------------------------End Socket Config---------------------------
__android_log_print(ANDROID_LOG_DEBUG, "bug", "tcp_socket return value %d", tcp_socket);
//-----------------------------------Server Config-------------------------------
//const char* server_host = "192.168.112";
unsigned short server_port = 9901; struct sockaddr_in server_tcp_addr;
memset(&server_tcp_addr, 0, sizeof(struct sockaddr_in));
server_tcp_addr.sin_family = AF_INET;
server_tcp_addr.sin_port = htons(server_port);
server_tcp_addr.sin_addr.s_addr = inet_addr("192.128.1.112");
//-----------------------------------End Server Config------------------------------- __android_log_print(ANDROID_LOG_DEBUG, "bug", "tcp_socket Connect Socket %d", 1); int connect_result = connect(tcp_socket,(struct sockaddr*)&server_tcp_addr, sizeof(server_tcp_addr));
//int connect_result = connect(tcp_socket,(struct sockaddr*)&server_tcp_addr, sizeof(struct sockaddr_in)); __android_log_print(ANDROID_LOG_DEBUG, "bug", "tcp_socket connect result %d", connect_result); if(connect_result < 0){ //fails here
__android_log_print(ANDROID_LOG_DEBUG, "bug", "tcp_socket Connect Socket %s", "2");
close(tcp_socket);
return (*env)->NewStringUTF(env, "ERROR CONNECTING TO SERVER");
}
char* message = "hello from android!";
int send_count = send(tcp_socket, &message, sizeof(message), 0); __android_log_print(ANDROID_LOG_DEBUG, "bug", "tcp_socket send_count %d", send_count); return (*env)->NewStringUTF(env, "TCP message sent!");01-03 19:53:52.076: WARN/ActivityManager(70): Launch timeout has expired, giving up wake lock!
01-03 19:53:54.893: WARN/ActivityManager(70): Activity idle timeout for HistoryRecord{4062f710 com.example.hellojni/.HelloJni}
01-03 19:54:00.234: DEBUG/dalvikvm(387): GC_EXPLICIT freed 3K, 54% free 2537K/5511K, external 1625K/2137K, paused 259ms
01-03 19:54:05.415: DEBUG/dalvikvm(134): GC_EXPLICIT freed 54K, 49% free 2974K/5767K, external 4681K/5342K, paused 255ms
01-03 19:54:10.553: DEBUG/dalvikvm(248): GC_EXPLICIT freed 6K, 54% free 2546K/5511K, external 1625K/2137K, paused 296ms
01-03 19:56:55.015: DEBUG/bug(457): tcp_socket connect result -1
01-03 19:56:55.015: DEBUG/bug(457): tcp_socket Connect Socket 2
01-03 19:56:55.986: INFO/ActivityManager(70): Displayed com.example.hellojni/.HelloJni: +3m13s285ms
01-03 19:57:54.206: DEBUG/SntpClient(70): request time failed: java.net.SocketException: Address family not supported by protocol
解决方案 »
- 使用setProgressDrawable()动态替换ProgressDrawable图片不好用
- 运行一个非常简单的json小程序,运行就出现一堆红字错误、求解。
- WebView loadUrl的问题
- android.com被墙?
- 有关Drag里几个方法的问题
- 新人求教, 请问如何使android手机通过usb链接linux的程序,并交换文件?
- 如何直接退出程序
- 在android客户端测试流媒体功能
- android百度地图搜索功能实现
- Android studio activity之间传递对象问题,百度地图,新手求指导
- 求经典java书籍
- 关于Android远程登录含有loading效果的程序的问题
connect为什么返回的是-1, 我在同一台机器上启动了一个服务,用C#写的,一直在监听9901这个端口。
<uses-permission
android:name="android.permission.INTERNET" />