本帖最后由 hmengji 于 2011-12-02 11:52:31 编辑

解决方案 »

  1.   

     private void send(Packet packet, byte[] changeMAC) {
            EthernetPacket eth;
            if (packet.datalink instanceof EthernetPacket) {
                eth = (EthernetPacket) packet.datalink;
                for (int i = 0; i < 6; i++) {
                    eth.dst_mac[i] = changeMAC[i]; // 修改包以太头,改变包的目标
                    eth.src_mac[i] = device.mac_address[i]; // 源发送者为A
                }
                packet.datalink = eth;  //此处要修改以太网头,才能正常转发
                sender.sendPacket(packet);
            }
        }