Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Raw Sockets on Android

I want to create an application that runs on Android and uses Raw Sockets. I see there isn't any raw socket support in the java.net.* or the android.net.* libraries. Are raw sockets possible on Android?

like image 685
Jim Avatar asked Apr 09 '10 14:04

Jim


People also ask

What are raw sockets used for?

A raw socket is used to receive raw packets. This means packets received at the Ethernet layer will directly pass to the raw socket. Stating it precisely, a raw socket bypasses the normal TCP/IP processing and sends the packets to the specific user application (see Figure 1).

What is socket connection Android?

A socket is an endpoint for communication between two machines. The actual work of the socket is performed by an instance of the SocketImpl class. An application, by changing the socket factory that creates the socket implementation, can configure itself to create sockets appropriate to the local firewall.

What is socket in Android Kotlin?

This class implements client sockets (also called just "sockets"). A socket is an endpoint for communication between two machines.


1 Answers

Correct, raw sockets are not supported in any Java or Android libraries, in part because (I quote from here):

it is believed that such a package would degrade the current Java security model and may be difficult to implement in a non-operating system (OS) dependent fashion.

There are 3rd party libraries like RockSaw or JSocket, however these require compiling C or C++, so you are out of luck there.

Also, I believe you need root access to use raw sockets.

So, with all that, I would say technically it's possible, but not practical at this time.

like image 194
Steve Avatar answered Nov 08 '22 21:11

Steve