Обычный способ сделать это в C ++ - это библиотеки libpcap или Winpcap.Его Java-оболочка также была реализована, и ее можно найти здесь .
При проблемах с внедрением пакетов вы можете использовать libnet .К сожалению, у него нет java-оболочек, и вы должны написать свою собственную java-оболочку от jni.