当前位置:首页 > 基于DV算法的路由器模拟设计与实现 - 图文
华北计算机系统工程研究所—若@只如初见
package mainManager;
import java.awt.BorderLayout; import java.awt.Color; import java.awt.GridLayout; import java.awt.HeadlessException; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.ObjectOutputStream; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; import java.net.SocketException; import java.net.UnknownHostException; import java.util.Arrays;
import javax.swing.JButton; import javax.swing.JCheckBox; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.JTextField;
import totalThreads.ForwardThread; import totalThreads.ReceiveThread; import totalThreads.SendThread; import transportPacket.SendDataPacket;
21
华北计算机系统工程研究所—若@只如初见
import transportPacket.TotalPacket; import entity.Constant; import entity.NetMap; import entity.Router; import entity.RouterTable; /**
* 每一个路由器都有的路由器线程 * @author 郭金磊 *@since 20131220 */
public class RouterThread extends JFrame implements Runnable { /**
* 产生全局唯一的序列化的实体ID */
private static final long serialVersionUID = -9094445007188117205L; /**
* 每一个路由器线程一个路由器实体 */
private Router router; /**
* 每一个路由器实体一个接受路由表线程 */
private DatagramSocket receiveSocket =null; /**
* 每一个路由器实体一个接受转发的数据线程 */
private DatagramSocket receiveDataSocket =null; /**
* 每个路由器线程一个接受线程 */
private ReceiveThread receiveThread=null; /**
* 每个路由器线程一个发送线程 */
22
华北计算机系统工程研究所—若@只如初见
private SendThread sendThread=null; /**
* 每个路由器线程一个转发线程 */
private ForwardThread forwardThread=null; /**
* 每个路由器线程一个主窗口 */
private JFrame routerFrame; /**
* 有三个显示路由器信息的JTextArea,一个路由表,一个路由表的更新信息,一个是发送数据的显示信息 */
private JTextArea routerAreaLeft,routerAreaRightNorth,routerAreaRightSouth; // 构造路由器窗口的组件。 /**
* 提示信息三个请输(目的路由#数据),该路由器路由表信息,路由转发和数据转发的信息 */
private JLabel commandPrompt,showMsgLink,showMsgForward; /**
* 选择是否挂起该路由的提示 */
private JLabel suspended; /**
* 写出要达到的目的地和要发送的数据 */
private JTextField enterField; /**
* 提交数据 */
private JButton submit; /**
* 选择是否挂起该路由
23
华北计算机系统工程研究所—若@只如初见
*/
private JCheckBox selectSuspend; /**
* 是否挂起该路由的内置变量布尔值 */
public boolean suspendFlag = false; /**
* 显示几个panal,用于承载所有的组件。 */ private r; /**
* 默认的构造方法 */
public RouterThread() { } /**
* 进行本路由器注入的构造方法
* @param router 每个路由器进程要注入的路由器(注入又叫控制反转) */
public RouterThread(Router router) {
commandPrompt = new JLabel(\请输(目的路由#数据):\suspended = new JLabel(\选择是否使该路由发生挂起: \enterField = new JTextField(\如2003#AAA\submit=new JButton(\提交\submit.setSize(20,10);
selectSuspend = new JCheckBox(\开始挂起...\try {
this.router = router;
routerFrame = new JFrame(\路由器\算法super();
JPanel
firstLine,
secondLine,centerArea,centerAreaLeft,centerAreaRight,centerAreaRightBorderCente
模拟_郭金磊2620139012\
24
共分享92篇相关文档