в Си делал вот так..
data[]=//заполнял данные
int sock=socket(PF_PACKET,SOCK_RAW,htons(ETH_P_802_3));
send(sock,data,PACKET_LENGTH,0);
а клиент слушал все, что происходило в сети..
и, в зависимости от данных, отклонял или принимал пакет..
нужно повторить что-то похожее на Java