日韩性视频-久久久蜜桃-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通信的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 国产福利视频一区二区三区 | 精品国产鲁一鲁一区二区张丽 | 波多野结衣中文字幕在线 | 免费国产a级片 | 久久久久99精品成人片 | 婷婷调教口舌奴ⅴk | 午夜亚洲aⅴ无码高潮片苍井空 | 中文字幕 日本 | 领导揉我胸亲奶揉下面 | 绿帽人妻精品一区二区 | 久久久久免费观看 | www三级免费 | www.亚洲人| 一区二区三区精品在线 | 妺妺窝人体色www聚色窝仙踪 | 天天色图片 | 国产乱淫av麻豆国产 | 香港台湾日本三级大全 | 精品久久9999 | 毛片视频免费播放 | 激情小视频在线观看 | 丰满人妻熟女aⅴ一区 | 草民午夜理伦三级 | 蜜桃视频一区 | 午夜免费精品 | 国产九色sp调教91 | www.中文字幕av | 老司机午夜av | 天天射天天干天天 | 在线综合色 | porn麻豆| 黄色短视频在线观看 | 国产一区精品视频 | 午夜av免费看 | 国产精品va | 热99视频| 少妇熟女视频一区二区三区 | 99久久毛片 | 欧美日韩a v | 山村大伦淫第1部分阅读小说 | 俄罗斯女人裸体性做爰 | 久久水蜜桃 | 99爱在线观看 | 911亚洲精品 | 性久久久久久久久久久久 | 91黑丝美女| 欧美一a一片一级一片 | 美女撒尿无遮挡网站 | 欧美成人三级在线视频 | 日韩精品区 | 亚洲av永久无码精品放毛片 | 亚洲综合图片网 | 欧美精品色 | 黄色网址进入 | 欧美日韩成人免费 | 欧美成人a | 青青草超碰在线 | 强伦人妻一区二区三区 | 色哟哟在线观看视频 | 日韩精品视频一区二区 | av2014天堂 | 美女精品网站 | 性猛交娇小69hd | 欧美三级又粗又硬 | 黄色免费视频观看 | 青青草自拍偷拍 | 午夜精品在线免费观看 | 红桃视频成人 | 亚洲午夜一区二区 | 一本一道精品欧美中文字幕 | 日韩av麻豆 | 精品二区在线 | exo妈妈mv在线播放免费 | 熟女熟妇伦久久影院毛片一区二区 | 超碰免费在线播放 | 精品欧美一区二区三区 | 蜜桃av鲁一鲁一鲁一鲁俄罗斯的 | 日韩乱码人妻无码中文字幕久久 | 大胸美女啪啪 | 日本免费一区二区在线 | 黄色网页入口 | 国产视频一二区 | 欧美精彩视频 | 日本公妇乱淫免费视频一区三区 | 日本伦理一区二区 | 网站黄色在线观看 | 朝鲜一级黄色片 | 国产乱子伦精品视频 | 成人污网站| 亚洲色精品三区二区一区 | jizz欧美大全| 很色的网站 | 海角社区id | 大地资源中文第三页 | 成人国产视频在线观看 | 精品视频在线观看 | wwwwxxxx国产| 免费毛片一级 | 又大又粗欧美黑人aaaaa片 |