• 大小: 13KB
    文件类型: .java
    金币: 1
    下载: 0 次
    发布日期: 2021-05-28
  • 语言: Java
  • 标签: JAVA类  

资源简介

用JAVA模拟的CSMA/CD过程,计算机网络大作业,其中节点设置可变更,这里面是设置两个节点。

资源截图

代码片段和文件信息

/*
 * To change this template choose Tools | Templates
 * and open the template in the editor.
 */
package network;
import java.awt.*;
import java.awt.event.*;
import java.lang.*;
import javax.swing.*;

class NetWork extends Jframe{
         public static int numNode;//numNode是节点的个数,i用于记录节点下标,使下面cn对象数组可以记录节点位置
         private JTextField node=new JTextField(10);//创建文本域
         protected JButton jbr=new JButton(“->“);//创建按钮
         JPanel jp=new JPanel();//创建一个面板
       //  NetWork jp2;//演示图窗口
         
         public NetWork(){//第一个面板的内容
          jp.setLayout(new BorderLayout(1510));
          jp.add(new JLabel(“请输入节点个数:“) BorderLayout.WEST);//创建标签将标签加入面板中
          jp.add(nodeBorderLayout.EAST);//将文本域加入面板中
          node.setHorizontalAlignment(JTextField.RIGHT);
          numNode=2;
          
          add(jpBorderLayout.NORTH);
          jp.add(jbrBorderLayout.SOUTH);//将按钮‘-〉’加入面板中 
          
          node.addActionListener(new ActionListener(){
          public void actionPerformed(ActionEvent e){
            numNode=Integer.parseInt(node.getText());//将在node文本域中的字符串转换成整数并存在numNode
            node.requestFocusInWindow();
          }
          });
          jbr.addActionListener(new ActionListener(){
           public void actionPerformed(ActionEvent e){
                  jp.removeAll();
                  jp.repaint();
                  jp.validate();
                  jp=new CreateNode(0);
           }   //若按下‘->‘则转换到创建节点面板中
          });
         }
         
 
         public class CreateNode extends JPanel{//创建节点面板 
              String name;
               double delayTimeframeTimea;//延迟时间,最短帧时间,冲突窗口
               int RnumResendframeLengthj;//随机数R,重发次数初始化为1,最短帧长度
                
              JButton colideNOcolidego;
              N jp2;
             public CreateNode(int iint m){
               add(new Picture(im));
             }
             
              public CreateNode(){}     
              JTextField[] ne=new JTextField[numNode];
              JTextField[] length=new JTextField[numNode];
              CreateNode[] createN=new CreateNode[numNode];
              int t;
              public  CreateNode(int i){
              t=0;numResend=1;
             jp.setLayout(new GridLayout(41011));
             for(;t            {  
               createN[t]=new CreateNode();
               jp.add(new JLabel(“请输节点名:“));//输入节点的情况
               ne[t]=new JTextField(10);
               jp.add(ne[t]);
               
               length[t]=new JTextField(10);
               jp.add(new JLabel(“最小帧长度:“));
               jp.add(length[t]);
              
               //除以10Mbps算出节点的发送最短帧时间(单位:us)
               createN[t].R=(int)(1+Math.random()*100);//随机为每个节点送一个地址值
               createN[t].delayTime=0;//初始化延迟时间和重发次数
               createN[t].a=51.2;//初始化重发次数和冲突窗口
            }    
               switch(numNode)
         

评论

共有 条评论