📄 code.htm
字号:
<!doctype html public "-//w3c//dtd html 4.0 transitional//en"><html><head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <meta name="Author" content="Shamiul Azom"> <meta name="GENERATOR" content="Mozilla/4.76 [en] (Win98; U) [Netscape]"> <meta name="KeyWords" content="GBN,Go-Back-N,Shamiul,Shamiul Azom"> <title>Go-Back-N Protocol Simulation: Java Applet Code</title></head><body><font face="Courier New,Courier"><font size=-1>//Java Applet Demonstration of Go-Back-N Protocol.</font></font><br><font face="Courier New,Courier"><font size=-1>// Coded by ShamiulAzom. ASU ID: 993456298</font></font><br><font face="Courier New,Courier"><font size=-1>// as project assignedby Prof. Martin Reisslein, Arizona State University</font></font><br><font face="Courier New,Courier"><font size=-1>// Course No. EEE-459/591.Spring 2001</font></font><br><font face="Courier New,Courier"><font size=-1></font></font> <br><font face="Courier New,Courier"><font size=-1></font></font> <font face="Courier New,Courier"><font size=-1></font></font><p><font face="Courier New,Courier"><font size=-1>import java.applet.Applet;</font></font><br><font face="Courier New,Courier"><font size=-1>import java.awt.*;</font></font><br><font face="Courier New,Courier"><font size=-1>import java.awt.event.ActionListener;</font></font><br><font face="Courier New,Courier"><font size=-1>import java.awt.event.ActionEvent;</font></font><br><font face="Courier New,Courier"><font size=-1></font></font> <font face="Courier New,Courier"><font size=-1></font></font><p><font face="Courier New,Courier"><font size=-1>public class gbn extendsApplet implements ActionListener, Runnable</font></font><br><font face="Courier New,Courier"><font size=-1> {</font></font><br><font face="Courier New,Courier"><font size=-1> final int window_len_def= 5; // Default values of parameters</font></font><br><font face="Courier New,Courier"><font size=-1> final int pack_width_def= 10;</font></font><br><font face="Courier New,Courier"><font size=-1> final int pack_height_def= 30;</font></font><br><font face="Courier New,Courier"><font size=-1> final int h_offset_def= 100;</font></font><br><font face="Courier New,Courier"><font size=-1> final int v_offset_def= 50;</font></font><br><font face="Courier New,Courier"><font size=-1> final int v_clearance_def= 300;</font></font><br><font face="Courier New,Courier"><font size=-1> final int total_packet_def= 20;</font></font><br><font face="Courier New,Courier"><font size=-1> final int time_out_sec_def= 30;</font></font><br><font face="Courier New,Courier"><font size=-1> </font></font><br><font face="Courier New,Courier"><font size=-1> final Color unack_color= Color.red; // Default colors of different packets</font></font><br><font face="Courier New,Courier"><font size=-1> final Color ack_color= Color.yellow;</font></font><br><font face="Courier New,Courier"><font size=-1> final Color sel_color= Color.green;</font></font><br><font face="Courier New,Courier"><font size=-1> final Color roam_pack_color= Color.red;</font></font><br><font face="Courier New,Courier"><font size=-1> final Color roam_ack_color= Color.yellow;</font></font><br><font face="Courier New,Courier"><font size=-1> final Color dest_color= Color.blue;</font></font><br><font face="Courier New,Courier"><font size=-1> </font></font><br><font face="Courier New,Courier"><font size=-1> int base, nextseq,fps, selected=-1;</font></font><br><font face="Courier New,Courier"><font size=-1> boolean timerFlag,timerSleep;</font></font><br><font face="Courier New,Courier"><font size=-1> Button send, stop,fast, slow, kill, reset;</font></font><br><font face="Courier New,Courier"><font size=-1> Thread gbnThread,timerThread;</font></font><br><font face="Courier New,Courier"><font size=-1> </font></font><br><font face="Courier New,Courier"><font size=-1> Dimension offDimension; // flashing eliminator: double buffering</font></font><br><font face="Courier New,Courier"><font size=-1> ImageoffImage;</font></font><br><font face="Courier New,Courier"><font size=-1> GraphicsoffGraphics;</font></font><br><font face="Courier New,Courier"><font size=-1> </font></font><br><font face="Courier New,Courier"><font size=-1> String statusMsg,strCurrentValues;</font></font><br><font face="Courier New,Courier"><font size=-1> </font></font><br><font face="Courier New,Courier"><font size=-1> packet sender[];</font></font><br><font face="Courier New,Courier"><font size=-1> </font></font><br><font face="Courier New,Courier"><font size=-1> // Declaring properties</font></font><br><font face="Courier New,Courier"><font size=-1> </font></font><br><font face="Courier New,Courier"><font size=-1> int window_len,pack_width, pack_height, h_offset, v_offset, v_clearance, total_packet,time_out_sec;</font></font><br><font face="Courier New,Courier"><font size=-1> </font></font><br><font face="Courier New,Courier"><font size=-1> </font></font><br><font face="Courier New,Courier"><font size=-1> public void init()</font></font><br><font face="Courier New,Courier"><font size=-1> {</font></font><br><font face="Courier New,Courier"><font size=-1> String strWinLen,strPackWd, strPackHt, strHrOff, strVtOff, strVtClr, strTotPack, strTimeout;</font></font><br><font face="Courier New,Courier"><font size=-1> </font></font><br><font face="Courier New,Courier"><font size=-1> strWinLen = getParameter("window_length"); // Start collecting parameters</font></font><br><font face="Courier New,Courier"><font size=-1> strPackWd = getParameter("packet_width");</font></font><br><font face="Courier New,Courier"><font size=-1> strPackHt = getParameter("packet_height");</font></font><br><font face="Courier New,Courier"><font size=-1> strHrOff = getParameter("horizontal_offset");</font></font><br><font face="Courier New,Courier"><font size=-1> strVtOff = getParameter("vertical_offset");</font></font><br><font face="Courier New,Courier"><font size=-1> strVtClr = getParameter("vertical_clearance");</font></font><br><font face="Courier New,Courier"><font size=-1> strTotPack = getParameter("total_packets");</font></font><br><font face="Courier New,Courier"><font size=-1> strTimeout = getParameter("timer_time_out");</font></font><br><font face="Courier New,Courier"><font size=-1> </font></font><br><font face="Courier New,Courier"><font size=-1> // Get the values of the parameters into properties.</font></font><br><font face="Courier New,Courier"><font size=-1> </font></font><br><font face="Courier New,Courier"><font size=-1> try {</font></font><br><font face="Courier New,Courier"><font size=-1> if (strWinLen != null) window_len = Integer.parseInt(strWinLen);</font></font><br><font face="Courier New,Courier"><font size=-1> if (strPackWd != null) pack_width = Integer.parseInt(strPackWd);</font></font><br><font face="Courier New,Courier"><font size=-1> if (strPackHt != null) pack_height = Integer.parseInt(strPackHt);</font></font><br><font face="Courier New,Courier"><font size=-1> if (strHrOff != null) h_offset = Integer.parseInt(strHrOff);</font></font><br><font face="Courier New,Courier"><font size=-1> if (strVtOff != null) v_offset = Integer.parseInt(strVtOff);</font></font><br><font face="Courier New,Courier"><font size=-1> if (strVtClr != null) v_clearance = Integer.parseInt(strVtClr);</font></font><br><font face="Courier New,Courier"><font size=-1> if (strTotPack != null) total_packet = Integer.parseInt(strTotPack);</font></font><br><font face="Courier New,Courier"><font size=-1> if (strTimeout != null) time_out_sec = Integer.parseInt(strTimeout);</font></font><br><font face="Courier New,Courier"><font size=-1> } catch (Exception e) {}</font></font><br><font face="Courier New,Courier"><font size=-1> </font></font><br><font face="Courier New,Courier"><font size=-1> // If parameter is not found, use default values.</font></font><br><font face="Courier New,Courier"><font size=-1> </font></font><br><font face="Courier New,Courier"><font size=-1> window_len = (window_len > 0) ? window_len : window_len_def;</font></font><br><font face="Courier New,Courier"><font size=-1> pack_width =(pack_width > 0) ? pack_width : pack_width_def;</font></font><br><font face="Courier New,Courier"><font size=-1> pack_height =(pack_height > 0) ? pack_height : pack_height_def;</font></font><br><font face="Courier New,Courier"><font size=-1> h_offset = (h_offset> 0) ? h_offset : h_offset_def;</font></font><br><font face="Courier New,Courier"><font size=-1> v_offset = (v_offset> 0) ? v_offset : v_offset_def;</font></font><br><font face="Courier New,Courier"><font size=-1> v_clearance =(v_clearance > 0) ? v_clearance : v_clearance_def;</font></font><br><font face="Courier New,Courier"><font size=-1> total_packet= (total_packet > 0) ? total_packet : total_packet_def;</font></font><br><font face="Courier New,Courier"><font size=-1> time_out_sec= (time_out_sec > 0) ? time_out_sec : time_out_sec_def;</font></font><br><font face="Courier New,Courier"><font size=-1> </font></font><br><font face="Courier New,Courier"><font size=-1> base = 0; // Defining base</font></font><br><font face="Courier New,Courier"><font size=-1> nextseq = 0; // Defining Next sequence number.</font></font><br><font face="Courier New,Courier"><font size=-1> fps = 5; // Defining default Frame per Second.</font></font><br><font face="Courier New,Courier"><font size=-1> </font></font><br><font face="Courier New,Courier"><font size=-1> sender = newpacket[total_packet];</font></font><br><font face="Courier New,Courier"><font size=-1> statusMsg = "Readyto run. Press 'Send New' button to start.";</font></font><br><font face="Courier New,Courier"><font size=-1> strCurrentValues= "Window Base = "+ base +". Next Sequence No. = "+ nextseq;</font></font><br><font face="Courier New,Courier"><font size=-1> </font></font><br><font face="Courier New,Courier"><font size=-1> // Defining thebuttons</font></font><br><font face="Courier New,Courier"><font size=-1> </font></font><br><font face="Courier New,Courier"><font size=-1> send = new Button("SendNew");</font></font><br><font face="Courier New,Courier"><font size=-1> send.setActionCommand("rdt");</font></font><br><font face="Courier New,Courier"><font size=-1> send.addActionListener(this);</font></font><br><font face="Courier New,Courier"><font size=-1> </font></font>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -