android 网络编程androidndk网络编程

android ndk 网络编程,最近一段时间不断的有朋友问我有没有adroiddk相关的网络编程的测试用例或者资料,网上基本上又没有,本文主要:①不是adroid上Java网络编程;②不仅仅是liux上网络编程;③就连adroiddk官方提供的测试用例也没有网络编程方面的资料;④同时设计widow上服务器,adroiddk上...
   最近一段时间不断的有朋友问我有没有androidndk相关的网络编程的测试用例或者资料,网上基本上又没有,本文主要:    ①不是android上Java网络编程;    ②不仅仅是liunx上网络编程;    ③就连androidndk官方提供的测试用例也没有网络编程方面的资料;    ④同时设计windows上服务器,androidndk上客户端的配置;    ⑤本文是在android上的纯c/c++开发环境下进行的,不会设计Java代码;   androidndk如何进行网络编程?androidndk层进行网络编程,代码部分跟linux上的网路类似,但是androidndk的难度却不在编码部分,而是在环境配置方面,本文将介绍如何来配置,如何来编写androidndk的网络部分,以便可以跟windows端的一个服务器测试程序进行通讯,本文档的重点放到了流程上面;   方便他人亦是方便自己,如果觉得还行就点下右边的投票吧,这样可以帮助其他人更快的找到解决问题的方法;有疑问的也可留言哦,谢谢!   代码和视频的百度云链接:http://pan.baidu.com/s/1dDGhu3f密码:dv72   注:由于优酷对视频进行了压缩,特将高清版放到百度云工具/原料Win7x64adt-bundle-windows-x86_64-20140702android-ndk-r10准备工作1由于本文是在”android纯c/c++开发“的测试用例上进行二次开发,所以没有测试用例的朋友可以看链接:http://jingyan.baidu.com/article/a501d80cf394dfec630f5e85.htmlENDwindows服务器端1完整的代码:#include#include#pragmacomment(lib,\"Ws2_32.lib\")#define FK_PORT 10000intmain(){ WSADATAwsaData={0}; intnRet=WSAStartup(MAKEWORD(2,2),&wsaData); SOCKETsockServer=socket(AF_INET,SOCK_STREAM,IPPROTO_IP); sockaddr_in sockAddr ={0}; sockAddr.sin_family =AF_INET; sockAddr.sin_addr.s_addr =INADDR_ANY; sockAddr.sin_port =htons(FK_PORT); nRet=bind(sockServer,(SOCKADDR*)&sockAddr,sizeof(sockaddr_in)); nRet=::listen(sockServer,SOMAXCONN); int nSockAddr=sizeof(sockaddr_in); SOCKET sockClient=::accept(sockServer,(SOCKADDR*)&sockAddr,&nSockAddr); char szMsg[1024]={0}; nRet=recv(sockClient,szMsg,sizeof(szMsg),0); printf(\"recv:%s\\n\",szMsg); shutdown(sockClient,SD_BOTH); closesocket(sockClient); shutdown(sockServer,SD_BOTH); closesocket(sockServer); WSACleanup(); return 0;}2由于本文的重点在androidndk上面,所以这里对于windows服务器的部分仅仅给出源代码;ENDandroidndk客户端1①增加一个UserPermssion②设置Name:android.permission.INTERNET步骤阅读步骤阅读2在NativeTest.cpp文件前面增加头文件:#include#include#include#include#include#include#include3在函数 onInputEvent中插入代码: int sockClient=socket(AF_INET,SOCK_STREAM,0); sockaddr_in sockAddr ={0}; sockAddr.sin_family =AF_INET; sockAddr.sin_addr.s_addr =inet_addr(\"192.168.0.101\"); sockAddr.sin_port =htons(10000); intnRet=connect(sockClient,(sockaddr*)&sockAddr,sizeof(sockaddr_in)); char szMsg[1024]=\"fukeainideren\"; nRet=send(sockClient,szMsg,strlen(szMsg),0);注:不同的电脑服务器的ip地址不同步骤阅读4运行后的结果:步骤阅读5    方便他人亦是方便自己,如果觉得还行就点下下边的投票吧,这样可以帮助其他人更快的找到解决问题的方法;有疑问的也可留言哦,谢谢!步骤阅读END

本文来自投稿,不代表长河网立场,转载请注明出处: http://www.changhe99.com/a/42wK1kk6Ao.html

(0)

相关推荐