ip协议的网络监听程序设计课程设计内容摘要:

Field targetPortTf=new JTextField(8080,15)。 private JButton addBtn=new JButton(Add)。 private GridBagLayout gbl=new GridBagLayout()。 private GridBagConstraints gbc=new GridBagConstraints()。 private JTabbedPane tabbedPane。 public AdminPanel(JTabbedPane tabbedPane) { =tabbedPane。 initComponent()。 } private void initComponent(){ //步骤一:选择容器 //步骤二:选择布局管理器 基于 TCP/IP 协议的网络监听程序设计 第 9 页 共 27 页 9 setLayout(gbl)。 //步骤三:加入组件 addComponent(titleLb, )。 addComponent(listenPortLb, 1)。 addComponent(listenPortTf, )。 addComponent(hostNameLb, 1)。 addComponent(hostNameTf, )。 addComponent(targetPortLb, 1)。 addComponent(targetPortTf, )。 addComponent(addBtn, )。 //步骤四:加入事件处理器 (new ActionListener(){ public void actionPerformed(ActionEvent arg0) { String listenPort=()。 String hostName=()。 String targetPort=()。 String msg=。 int i=1。 if(listenPort==null||().length()==0) msg+=i++ + . Please input valid listen port. \r\n。 if(hostName==null||().length()==0) msg+=i++ + . Please input valid hostname.\r\n。 if(targetPort==null||().length()==0) msg+=i++ + . Please input valid target port.\r\n。 if(()0) { (null, msg)。 return。 } try { URLInfo urlInfo=new URLInfo((listenPort), 基于 TCP/IP 协议的网络监听程序设计 第 10 页 共 27 页 10 hostName, (targetPort))。 MonitorPanel monitorPanel=new MonitorPanel(tabbedPane,urlInfo)。 (monitorPanel,Port +listenPort)。 }catch(Exception e) { (null, ())。 } } })。 } private void addComponent(Component c, int gridwidth){ =gridwidth。 (c, gbc)。 add(c)。 } } 其构造出来的界面如下图所示: 图 主界面图 基于 TCP/IP 协议的网络监听程序设计 第 11 页 共 27 页 11 网络实现 1 执行 Class MonitorSend extends Thread { private Socket socket。 该段程序为持有想访问的 Web 服务 器中资源的路径 ,比如说 : / 或/images/ 等。 调用字符串函数并执行循环体如下: try { cin=new BufferedReader( new InputStreamReader(()) )。 String s=()。 这时 s 的内容类似于 :GET / HTTP/。 public synchronized void setFileName(String s) { String[] str=( )。 fileName=str[1]。 notifyAll()。 } } 2 网络实现主体函数是 ServerSocket,。 调用 URL,对其监听端口,主机名,网络目的地址进行设定。 执行 catch(Exception e) { (monitorPanel,())。 }finally{ try{ if(serverSocket!=null)()。 }catch(Exception e){} } } public void close() { 基于 TCP/IP 协议的网络监听程序设计 第 12 页 共 27 页 12 try{ if(serverSocket!=null)()。 }catch(Exception e){} } 该段程序通过其循环语句的实现值来体现浏览器向 web 服务器提交的信息。 3 用来显示 Web 服务器返回给浏览器的信息 class MonitorReceive extends Thread { private Socket socket。 private MonitorSend send。 public MonitorReceive(Socket socket,MonitorSend send) { =socket。 =send。 } public void run() { PrintStream cout=null。 // Monitor 程序至浏览器的输出流 BufferedInputStream sin=null。 // Web 服务器至 Monitor 程序的输入流 StringBuffer sb=new StringBuffer()。 // Web 服 务器响应内容 这样从服务器到浏览器,从浏览器到服务器。 在都次循环语句执行下,监听器开始执行其工作。 即截获网址,以及改次请求发送过程中的数据包。 其中包括包头的信息。 5 程序的实现与测试 模型 图 B/S 模型 总体设计很简单,就是当本机想访问某个网页时,其中间放置了一个监听器。 如图基于 TCP/IP 协议的网络监听程序设计 第 13 页 共 27 页 13 所示。 该监听器将发送端的数据包,包括其字节头等,通过监听器显示出来,而其接受网页方在受到访问后所作出的工作也将在监听器上得以体现。 测试步骤 根据以上代码首先设计出图形界面如图 52 所示: 图 软件界面 如图可以看出其需要输出监听端口,目的主机名和目的端口的值。 目的主机为其要访问的网址的 IP 地址,打个比方,如想访问 ,则需先找到其对应的 IP地址,可在运行平台由 ping 命令获得:如图 所示: 图 查找访问页面地址 基于 TCP/IP 协议的网络监听程序设计 第 14 页 共 27 页 14 根据以上所提供的数据,将其数值输入到相应的对话框,如图 所示 图 输入 IP 地址后的图 在网页中输入 port1542 既可得到数据输出,如图 所示: 图 访问网页截获其数据图 从图中可以很清楚地看出其输出的数据和其输入的数据。 而这其中不仅仅是包含了网址那么简单,从数据包的头,到一些具体的内容都可以显现到我们的监听器当中。 因为其发送和接受的数据都被截获 [4],所以可以说这个程序是成功的。 其功能得到了很好的发挥。 若输入其网址端口后,其值不能正常显示出来,发送和接受都没有得到的话,基于 TCP/IP 协议的网络监听程序设计 第 15 页 共 27 页 15 那说明此次截获是失败的。 也就是说其监听器的功能 没有能够很好的体现。 监听器所实现的功能就是网页与网页的互访 [5],而其中的数据和内容将被大量的显现出来。 让我们更好的看到其内容。 6 结束语 时间过得真快,二周的课程设计在忙碌中结束了。 Java 对于我而言是个极其生僻的词汇 ,可现在的自己却作出来一个东西。 感觉不可思议。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。