Java, Java .
Also note that access to raw sockets is usually available only for the “root” processes, since otherwise any user could: a) sniff all the traffic and b) generate fake packets.
Instead of writing your entire program so that it runs as root, you might think that packet capture and generation is done in a separate program using some sort of IPC (RMI, named pipe, TCP socket, etc. ) to exchange data with your Java application.
source
share