记Android关于Unix abstract socket的连接问题
Keywords
Android Unix abstract namespace socket LocalSocket LocalServerSocket
length 地址长度
正文
在一个项目中,需要 native 的程序对 java 的LocalServerSocket
发起连接。即 Java 端监听某个 Unix 套接字,等待 native 的程序连接。结果死活连不上,总是提示Connection Refused(110)
。
这是 Java 端的代码示意,非常简单:
public void listen() {
String name = "myname";
mSocket = new LocalServerSocket(name);
LocalSocket client = mSocket.accept();
...
}
发现客户端如果用 java 代码连接很容易就连接上了:
public void connect() {
String name = "myname";
LocalSocket client = new LocalSocket();
client.connect(new LocalSocketAddress(name));
Log.d("client", "connected to " + name