📄 packetsenderlinux.java
字号:
/*QosAodv ver 0.2 - Java AODV (RFC 3561) Protocol HandlerCopyright 2003-2004 ComNets, University of BremenThis program is free software; you can redistribute it and/ormodify it under the terms of the GNU General Public Licenseas published by the Free Software Foundation; either version 2of the License, or (at your option) any later version.This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See theGNU General Public License for more details.You should have received a copy of the GNU General Public Licensealong with this program; if not, write to the Free SoftwareFoundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.*/package qosaodv.net;import javax.microedition.io.*;import java.io.*;import jpcap.*;import qosaodv.msg.*;import qosaodv.conf.*;import qosaodv.other.*;/*** This Class provides the functionality to transmit packets in Linux* environment. These packets can be either AODV messages or other IP* packets.** @author : Asanga Udugama* @date : 26-sep-2003* @email : adu@comnets.uni-bremen.de** @modification history* 11-feb-2004 class name change* introduced interface**/public class PacketSenderLinux implements PacketSenderInterface { public ConfigInfo cfgInfo; public CurrentInfo curInfo; public MulticastSocket mcastSock; public InetAddress mcastGrpAddr; public JpcapSender jpcapSender; /** * Constructor to create the packet sender. Constructor * will open the AODV socket for sending messages. * @param CfgInfo cfg - config info object * @exception Exception - thrown if errors encountered */ public PacketSenderLinux(ConfigInfo cfg, CurrentInfo cur) throws Exception { cfgInfo = cfg; curInfo = cur; } /** * Method to start the packet sender. Start open the packet * sending connection in jpcap * @exception Exception - thrown if error */ public void start() throws Exception { mcastGrpAddr = cfgInfo.ipAddressMulticastVal; mcastSock = new MulticastSocket(AODVMessage.AODV_PORT); //mcastSock.joinGroup(mcastGrpAddr); jpcapSender = JpcapSender.openDevice(cfgInfo.ifaceName); } /** * Method to stop the packet sender. Stops by leaving the * multicast group. * @exception Exception - thrown when joining group, if error */ public void stop() throws Exception { //mcastSock.leaveGroup(mcastGrpAddr); jpcapSender.close(); } /** * Method to send a AODV message through the multicast socket. * @param AODVMessage msg - AODV message top send * @exception Exception - thrown if error */ public void sendMessage(AODVMessage msg) throws Exception { mcastSock.setTimeToLive(msg.ttlValue); mcastSock.send(msg.javaUDPDgram); // log curInfo.log.write(Logging.INFO_LOGGING, "Packet Sender - AODV Message Generated - " + msg.toString()); } /** * Method to send a IP packet out through jpcap. * @param IPPkt pkt - the packet to be sent * @exception Exception - thrown if errors encountered */ public void sendPkt(IPPkt pkt) throws Exception { jpcapSender.sendPacket(pkt.jpcapIPPkt); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -