待写,问题已解决一直没时间完成此博客;
如有此问题者可留言,同时我会尽快完成此博客,也可暂时参考下贴,但我将提供一个完整程序
1,init.rc:
2,底层server代码:
#define SOCKET_NAME "testserver"
#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>
//#define LOGD(...) __android_log_print(ANDROID_LOG_ERROR, "myserver", __VA_ARGS__)
int main(){
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];
fdListen = android_get_control_socket(SOCKET_NAME);
if (fdListen < 0) {
//LOGD("Failed to get socket '" SOCKET_NAME "' errno:%d", errno);
perror("android_get_control_socket");
exit(-1);
}
ret = listen(fdListen, connect_number);
if (ret < 0) {
perror("listen");
exit(-1);
}
//It block until client connected.
new_fd = accept(fdListen, (sockaddr *) &peeraddr, &socklen);
if (new_fd < 0 ) {
//LOGE("Error on accept() errno:%d", errno);
perror("accept");
exit(-1);
}
if((numbytes = recv(new_fd,buff,sizeof(buff),0))==-1)
{
perror("recv");
exit(-1);
}
printf("%s",buff);
//将从客户端接收到的信息再发回客户端
if(send(new_fd,buff,strlen(buff),0)==-1)
{
perror("send");
close(new_fd);
exit(0);
}
close(new_fd);
close(fdListen);
return 0;
}
3,顶层client app代码:
参考:http://apps.hi.baidu.com/share/detail/38960550