日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

android的NDK和java进行本地socket通信

發布時間:2025/3/21 编程问答 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android的NDK和java进行本地socket通信 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

關于Android應用與Framework的socket通信,相信關心這個問題的朋友們已經看過《android使用socket使底層和framework通信》這篇文章,美中不足的是作者只貼出一些關鍵的代碼片段而并沒有放出源碼。我這里還是以一個能實際運行的例子為基礎來講,這樣也方便大家學習。

????首先看一下效果,如下圖。我填寫姓名"Potter",選擇性別"Mr"然后點擊發送,底層socket收到消息后將消息直接返回給我,我將返回的結果(Mr.Potter)直接顯示在Result。

編寫socket服務端代碼,生成可執行腳本htfsk。

#define SOCKET_NAME "htfsk"#include <stdio.h> #include <stdlib.h> #include <errno.h> #include <string.h> #include <sys/types.h> #include <netinet/in.h> #include <sys/socket.h> #include <sys/wait.h> #include <sys/un.h> #include <cutils/sockets.h> #include <utils/Log.h> #include <android/log.h>int main(){char log[200]; int connect_number = 6;int fdListen = -1, new_fd = -1;int ret;struct sockaddr_un peeraddr;socklen_t socklen = sizeof (peeraddr);int numbytes ;char buff[256];//這一步很關鍵,就是獲取init.rc中配置的名為 "htfsk" 的socketfdListen = android_get_control_socket(SOCKET_NAME);if (fdListen < 0) {sprintf(log,"Failed to get socket '" SOCKET_NAME "' errno:%d", errno);__android_log_write(ANDROID_LOG_DEBUG,"FTM_JNI",log); exit(-1);}//開始監聽ret = listen(fdListen, connect_number); sprintf(log,"Listen result %d",ret);__android_log_write(ANDROID_LOG_DEBUG,"FTM_JNI",log); if (ret < 0) {perror("listen");exit(-1);}//等待Socket客戶端發啟連接請求new_fd = accept(fdListen, (struct sockaddr *) &peeraddr, &socklen);sprintf(log,"Accept_fd %d",new_fd);__android_log_write(ANDROID_LOG_DEBUG,"FTM_JNI",log); if (new_fd < 0 ) {sprintf(log,"%d",errno);__android_log_write(ANDROID_LOG_DEBUG,"FTM_JNI",log); perror("accept error");exit(-1);}while(1){//循環等待Socket客戶端發來消息__android_log_write(ANDROID_LOG_DEBUG,"FTM_JNI","Waiting for receive");if((numbytes = recv(new_fd,buff,sizeof(buff),0))==-1){sprintf(log,"%d",errno);__android_log_write(ANDROID_LOG_DEBUG,"FTM_JNI",log); perror("recv");continue;}//發送消息回執給Socket客戶端if(send(new_fd,buff,strlen(buff),0)==-1){perror("send");close(new_fd);exit(0);} }close(new_fd);close(fdListen);return 0; }

3、編寫客戶端java代碼。核心代碼如下:

import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter;import android.net.LocalSocket; import android.net.LocalSocketAddress; import android.util.Log;/*** Socket客戶端* * @author lai_zs* @date:2012-3-17 下午12:15:09*/ public class SocketClient {private final String SOCKET_NAME = "htfsk";private LocalSocket client;private LocalSocketAddress address;private boolean isConnected = false;private int connetTime = 1;public SocketClient() {client = new LocalSocket();address = new LocalSocketAddress(SOCKET_NAME, LocalSocketAddress.Namespace.RESERVED);new ConnectSocketThread().start();}/*** 發送消息* @param msg* @return 返回Socket服務端的消息回執*/public String sendMsg(String msg) {if (!isConnected) {return "Connect fail";}try {BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));PrintWriter out = new PrintWriter(client.getOutputStream());out.println(msg);out.flush();return in.readLine();} catch (IOException e) {e.printStackTrace();}return "Nothing return";}/*** 異步連接Socket,如果連接不上會嘗試重復連接十次* * @author Administrator* */private class ConnectSocketThread extends Thread {@Overridepublic void run() {while (!isConnected && connetTime <= 10) {try {sleep(1000);Log.i("SocketClient","Try to connect socket;ConnectTime:"+connetTime);client.connect(address);isConnected = true;} catch (Exception e) {connetTime++;isConnected = false;Log.i("SocketClient","Connect fail");}}}}/*** 關閉Socket*/public void closeSocket() {try {client.close();} catch (IOException e) {e.printStackTrace();}}}

?

總結

以上是生活随笔為你收集整理的android的NDK和java进行本地socket通信的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 免费动漫av| 亚洲免费在线观看av | 国产免费无码一区二区视频 | 亚洲自拍偷拍第一页 | 欧美日韩中文在线观看 | 欧美在线视频第一页 | 成人区精品一区二区婷婷 | 国产免费一区二区三区三州老师 | 国产精品人八做人人女人a级刘 | 久久精品人妻av一区二区三区 | 久久99久久99精品中文字幕 | 粉嫩av渣男av蜜乳av | 欧美va天堂 | 少妇婷婷 | 在线观看亚洲网站 | 日韩一级高清 | 97超级碰碰碰 | 久久99精品久久久久久琪琪 | 香蕉传媒| 伊人精品一区二区三区 | 欧美第十页 | 一区二区在线影院 | 黄色午夜 | 色天天av | 男生女生搞黄色 | 亚洲av无码一区二区三区人 | 欧美日韩91 | 日韩性生交大片免费看 | xx69欧美 | 国产精品一区二区入口九绯色 | av第一区 | 亚洲图片激情小说 | 中国国产精品 | 亚洲 国产 日韩 欧美 | 黄色美女视频网站 | av短片| 欧美亚洲国产精品 | 撕开少妇裙子猛然进入 | 国产综合久久 | 骚色综合| juliaannxxxxx高清| 亚洲av成人无码一区二区三区在线观看 | 国产免费午夜 | 亚洲精品国产成人av在线 | 狠狠鲁视频 | 天天综合网站 | 精品免费视频一区二区 | 欧美一区二区三区爱爱 | 国产成人精品在线视频 | 亚洲最大成人在线 | 国产精品久久久久久久久晋中 | h片在线免费观看 | 日韩一级影院 | 国产综合网站 | 午夜91视频| 永久免费成人代码 | 无码成人精品区一级毛片 | 中文字幕在线官网 | 久色网站| 波多野结衣爱爱 | 借种(出轨高h) | 动漫精品一区 | 欧美孕交视频 | 亚洲天堂网址 | 伊人色图 | 在线视频久| 葵司ssni-879在线播放 | 日韩精品一区二区三区电影 | 欧美一级免费在线观看 | 51久久 | 欧美人妻精品一区二区 | av天天草| 性色视频在线观看 | 黑森林av凹凸导航 | 久久性色av| 亚洲国产激情 | 青青草网站 | 韩国三级在线视频 | 瑟瑟综合网 | 国产大片在线观看 | 对白超刺激精彩粗话av | 日韩天堂一区 | 波多野结衣影院 | 久久y| 97人人看| 成色网 | 国产69精品久久久久777 | 三级黄色小视频 | 久久亚洲精精品中文字幕早川悠里 | 北条麻妃二三区 | 香蕉视频黄污 | 在线看片成人 | 国产一区二区精华 | 久久久久久久久99精品 | 日日夜夜婷婷 | 91福利在线观看 | 香蕉大人久久国产成人av | 免费看av在线| 久久国精品 |