java 和C 之间进 行socket通信
java
//连接服务器
private static finale String SOCKET_NAME = "mySocket";
public boolean connect(){
if(mSocket!=null)
return true;
try{
mSocket = new LocalSocket();
LocalSocketAddress address = new LocalSocketAddress(SOCKET_NAME,LocalSocketAddress.Namespace.RESERVED);
mSocket.connect(address);//连接
mIn = mSocket.getInputStream();//输入
mOut = mSocket.getOutputStream();//输出
}catch(IOException ex){
disconnect();
return false;
}
}
#include <sys/socket.h>
#include <cutils/sockets.h>
</pre><pre code_snippet_id="415828" snippet_file_name="blog_20140703_14_1287721" name="code" class="cpp" style="background-color: rgb(255, 255, 255); ">#define SOCKET_NAME "mySocket" //同java
int lsocket;
struct socketaddr addr;
socklen_t alen;
</pre><pre code_snippet_id="415828" snippet_file_name="blog_20140703_19_951030" name="code" class="cpp" style="background-color: rgb(255, 255, 255); ">lsocket = android_get_control_socket(SOCKET_NAME);</span>
if(lsocket<0)
exit(1);
if(listen(lsocket,5))
<span style="white-space:pre"> </span>exit(1);
fcntl(lsocket,F_SETFD,FD_CLOEXEC);
for(;;){
<span style="white-space:pre"> </span>alen = size(addr);
<span style="white-space:pre"> </span>s = accept(lsocket,&addr,&alen);
<span style="white-space:pre"> </span>if(s<0)
<span style="white-space:pre"> </span>continune;
<span style="white-space:pre"> </span>fcntl(s,F_SETFE,FD_CLOEXEC);
<span style="white-space:pre"> </span>for(;;){
<span style="white-space:pre"> </span>read //
<span style="white-space:pre"> </span>write...
<span style="white-space:pre"> </span>}
}