Wednesday, June 6, 2012

[android-developers] Re: App talking to native ARM binary via sockets

Thanks. Seems like 127.0.0.1 works. I also tried 0.0.0.0 and that worked too.

I would also like to use unix domain sockets, since I really only want the 2 processes talking to each other rather than any external devices talking to my device. However, when I change AF_INET to AF_UNIX in the socket() call in my server and client, I get run time "Invalid argument" errors on bind() and connect() respectively.

How do I make the switch to unix domain sockets? What am I missing?

On Wednesday, June 6, 2012 11:13:07 PM UTC+8, Chris Stratton wrote:
On Jun 6, 8:34 am, Tony Houghton <h...@realh.co.uk> wrote:

> 10.0.2.2 is a special address so that apps in an emulator can connect to
> services on the host running the emulator. AIUI your service is running
> on the same Android device as the client so I think you want 127.0.0.1.

Yes.  Not only is the special address the wrong computer, it's unique
to emulators and not available on real devices.  If using a network
socket, loopback is the answer.

However, unless you absolutely have to emulate IP networking, it may
be preferable to use a unix-domain socket rather than a network one.
This will remove the requirement that any apk using it carry internet
permission, while keeping many of the semantics comparable.

While unix domain sockets aren't the first choice for IPC within
android (that would be Binder) they definitely are used within android
itself, for example the connection between the adb daemon and a
debuggable app process which makes java debugging possible is done via
a unix socket.

--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscribe@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

No comments:

Post a Comment