网络编程技术复习题.docx

上传人:b****3 文档编号:3901394 上传时间:2022-11-26 格式:DOCX 页数:16 大小:39.20KB
下载 相关 举报
网络编程技术复习题.docx_第1页
第1页 / 共16页
网络编程技术复习题.docx_第2页
第2页 / 共16页
网络编程技术复习题.docx_第3页
第3页 / 共16页
网络编程技术复习题.docx_第4页
第4页 / 共16页
网络编程技术复习题.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

网络编程技术复习题.docx

《网络编程技术复习题.docx》由会员分享,可在线阅读,更多相关《网络编程技术复习题.docx(16页珍藏版)》请在冰豆网上搜索。

网络编程技术复习题.docx

网络编程技术复习题

1,名词解释

【GUI】:

图形用户界面(GraphicalUserInterface)

【MIB】:

管理信息库(ManagementInformationBase)

【JVM】:

Java虚拟机(JavaVirtualMachine)

【JRE】:

Java运行时环境(JavaRuntimeEnvironment)

【JDK】:

Java开发工具(JavaDeveloper'sKit)

【URL】:

统一资源定位器

【J2EE】:

Java2平台企业版(Java2Platform,EnterpriseEdition)

【J2ME】:

Java2平台微缩版(Java2Platform,MicroEdition)

【J2SE】:

Java2平台标准版(Java2Platform,StandardEdition)

【AWT】:

抽象工具箱(AbstractWindowingToolkit)

【SNMP】:

简单网络管理协议(SimpleNetworkManagementProtocol)

【B/S模式】:

浏览器/服务器模式(Browser/Server)

【C/s模式】:

客户机/服务器模式

【API】:

应用编程接口,一种规范(ApplicationProgramInterface);

【HTTP】:

超文本传输协议

【HTML】:

超文本标记语言(HypertextMarkupLanguage)

【IDL】:

接口定义语言

【被动测量】:

主要是通过对网络流量及状态参数的监视和收集来完成测量任务

【主动测量】:

通过向网络中注入测试流量数据,并从其响应结果数据中测量网络状态参数

【Java容器】:

Java中用来存放其他控件的一种组件。

【多态】:

一个程序中同名的不同方法共存的情况,接口的不同实现方式

【重载】:

在同一类中定义了多个同名而不同内容的成员方法时,称这些方法是重载的方法

【覆盖】:

子类中定义与父类中已定义的相同名而内容不同的方法。

这种多态被称为覆盖

【继承】:

特殊类的对象拥有其一般类的全部或部分属性与方法,称作特殊类对一般类的继承。

Java中用extends指明继承关系

【消息】:

就是向对象发出服务请求,是对数据成员和成员方法的引用

【消息的作用】:

对象之间的联系是通过消息传递来实现的

【公有消息】:

当有一批消息同属于一个对象时,由外界对象直接发送给这个

对象的消息称为公有消息

【私有消息】:

对象自己发送给本身的消息称为私有消息

【JDBC】:

java数据库连接(JavaDataBaseConnectivity)

【DNS】:

域名服务器(DomainNameServer)

【JFC】:

java基础类别(JavaFoundationClasses(JFC))

【DDL】数据定义语言(DataDefinitionLanguage)

【ATM】异步传输模式(AsynchronousTransferMode)

【DML】数据操纵语言(DataManipulationLanguage)

【DQL】数据查询语言(DataQueryLanguage)

【DCL】数据控制语言(DataControlLanguage)

访问控制符(私有访问控制符private、缺省访问控制符、公共访问控制符public、保护访问控制符protected)

数据成员和成员方法的访问控制符有public、private、protected和缺省访问控制符

2,填空

1、URL通信使用(http)协议,Socket通信使用(TCP)协议。

UDP通信使用(UDP)协议。

2、线程中,Sleep()方法的功能是(使线程进入睡眠状态),Stop()方法的功能是(使线程进入死亡状态),Start()方法的功能是(使线程进入就绪状态)。

3、常用组件中,JLable的功能是(可以显示一行静态文本,起信息说明的作用),JBottom的功能是(用户可以指定按下按钮时所执行的操作),JCheckBox的功能是(用户点击某复选框就会改变该复选框原有的状态)。

4、Java中有关网络的类都包含在(J)包中。

5、数据成员和成员方法的访问控制符有(public)、(protected)、(friendly)、(private)4种。

6、网络管理的五大任务:

(失效管理)、(安全管理)、(性能管理)、(计费管理)、(配置管理).

7、SNMP的3种基本特征:

(get)、(set)、(Trap)。

8、常用组件中,JList的功能是(将所用选项放入列表框中),JTextField的功能是(定义一个单行条形文本区),JComboBox的功能是(创建下拉列表框)。

9、Java整数类型中,字节型(byte),短整型(short),整型(int),长整型(long),占用的字节数分别为:

(1)、

(2)、(4)、(8)。

3,问答

(1)获取网络数据方法

答:

获取网络数据的4种方法网卡采集属于基于监听方式

1.基于监听方式

2.利用SNMP查询网络设备(如路由器、交换机)的MIB

3.安插网络探针(PROBE)

4.利用IPFlow技术实现基于流级的流量采集

(2)Public与static修饰符特点

Public表示类修饰符时,表示这个类是公共类,可以供所在包以及其他包中的类使

Static修饰符所修饰的方法称为静态方法,属于整个类的类方法。

(3)什么是类与对象,类与对象的关系

把客观世界的事物映射到面向对象程序设计中,把问题域中的事物抽象成对象,把事物静态特征(属性)抽象成一组数据,把事物的动态特征(行为)抽象成一组方法.对象具有几个特征:

①对象标识②属性③方法。

类是对对象的抽象和归纳。

将当前目标有关的本质特征抽象出来,忽略非本质特征,找出共同性质的事物归结为一类。

类需要指明三个方面内容:

①类标识②属性说明③方法说明。

类给出了属于该类的全部对象的抽象定义,而对象则是符合这种定义的一个实体。

类与对象的关系如同模具与模具铸造的铸件关系。

也就是说可以把类与对象关系看成是抽象与具体的关系。

定义了类以后才可以在类的基础上创建对象。

(4)常用组件功能JButton,Jlabel等组件功能。

1JLabel组件称为标签,显示一行静态文本,起到信息说明作用,不接受用户输入,无事件响应。

2JButton,JToggleButton通常称为按钮,具有按下弹起两种状态,用户可以指定按下与按钮时要执行的操作。

JToggleButton按钮点击后不会弹起。

3JCheckBox组件称为复选框,提供“选中”和“未选中”两种状态。

4JRadioButton组件称为选项按钮,与JCheckBox组件功能相同,与ButtonGroup类组合运用可以实现单选框按钮功能。

5JComboBox组件称为下拉表框,将所有选项折叠收藏在一起,只显示最前面的或被用户选中的一个。

6JList组件称为列表组件,将所有选项放入列表框中。

7JTextField组件称为文本框。

定义了一个单行条形文本区,可以输出任何基于文本的信息,也可以接受用户输入。

8JTextArea组件称为文本域。

与JTextField区别是:

文本框只能输入/输出一行文本,而文本域可以输入/输出多行文本。

(5)线程的各种状态

一个完整的线程有新生,就绪,运行,阻塞和死亡五个状态。

1新生状态:

用new关键字创建线程对象,调用start()进入就绪状态。

2就绪状态:

已具备运行条件,尚未分配到CPU资源,进入线程队列排队。

一旦获得CPU资源,进入运行状态,调用自己的run方法。

3运行状态:

脱离其主线程,独立开始生命周期,执行自己run方法中的代码。

遇到终止,等待,睡眠,挂起,退让,I/O要求,时间片用完等情况时,终止run方法的执行。

4阻塞状态:

正在执行的线程在比如执行suspend,join,sleep方法,等待I/O设备等情况时,让出CPU并暂时中止执行,进入阻塞状态。

当阻塞原因被消除时,线程才转入就绪状态,重新进到线程队列等待CPU资源。

5死亡状态:

正常运行线程完成全部工作或被提前强制地终止,线程进入死亡状态,永远不再执行。

(6)常用的java包

java.lang:

Java语言的核心类库,包含了运行Java程序必不可少的系统类。

加载时缺省的。

java.io:

包中包含了实现Java程序与操作系统、用户界面以及其他Java程序之间进行数据交换所使用的类

java.awt:

是Java语言用来构建图形用户界面(GUl)的类库

java.awt.event:

对Event类的扩充,能够使图形界面元素拥有处理事件的能力。

是Java语言用来实现网络功能的类库

java.applet:

是用来实现运行于Internet浏览器中的JavaApplet的工具类库

java.rmi包,java.rmi.registry包,java.rmi.server包:

用来实现远程方法调用功能。

Java.util包:

包含了Java语言中一些低级的实用工具,比如Date。

java.sql:

是实现JDBC的类库

4,阅读

1),学生管理系统

2),基于SNMP-MIB网络数据获取。

简单网络管理协议

SnmpGet

importcom.adventnet.snmp.beans.*;

publicclassSnmpGet{

publicstaticvoidmain(Stringargs[]){

//初始化一个SNMPtarget实体或者说是一个对象

SnmpTargettarget=newSnmpTarget();

//设置运行SNMP代理的主机的IP地址

target.setTargetHost("x2.y2.y1.x1");

//设置对象标识OID(在原来的OID加上.0这是语法的规定)

target.setObjectID(".1.3.6.1.2.1.4.3.0");

//执行一个GET请求

Stringresult=target.snmpGet();

if(result==null)

{

//如果result是空的,说明请求失败,打印错误信息

System.err.println("Requestfailedortimedout.\n"+target.getErrorString());

}

//如果成功的话,打印接收到对象的值

else

{

//printthevalues

System.out.println("Responsereceived.

Value:

"+result);

}

System.exit(0);

}

}

SnmpGetLargeTable

importjavax.swing.*;

importjava.awt.event.*;

importcom.adventnet.snmp.ui.*;

publicclassSnmpGetLargeTable{

publicstaticvoidmain(Stringargs[]){

//构造一个JFrame框架实体

JFrameframe=newJFrame();

//在框架实体商添加一个窗口侦听器

frame.addWindowListener(newWindowAdapter()

{

publicvoidwindowClosing(WindowEventevt)

{

System.exit(0);

}

}

);

//设置窗口的大小

frame.setSize(615,400);

//设置标题栏的标题

frame.setTitle("TutorialExampleforretreivingSNMPTableusingSnmpTablePanel");

//定义一个SnmpTablePanel实体

SnmpTablePaneltablepanel=newSnmpTablePanel();

//设置有关参数

tablepanel.setTargetHost("localhost");

tablepanel.setCommunity("public");

//加载MIB模型和设置表的标识OID,失败的话打印错误信息

try{

tablepanel.loadMibs("RFC1213-MIB");

tablepanel.setTableOID("ifTable");

}catch(Exceptionex){

System.err.println("Error:

"+ex);

}

//把tablepanel模板加入到框架中

frame.getContentPane().add(tablepanel);

//设置框架为可视的

frame.setVisible(true);

}

}

SnmpGetTable_one

importcom.adventnet.snmp.beans.*;

publicclassSnmpGetTable_one{

publicstaticvoidmain(Stringargs[]){

//如果不输入两个参数的话,这个线程就会退出,不在执行,并作出提示

if(args.length<2)

{

System.out.println("Usage:

javaSnmpGetTable_one

hostnametableoid");

System.exit(0);

}

//分别把参数1,和参数2赋给remoteHost,tableoid两个变量

StringremoteHost=args[0];

Stringtableoid=args[1];

//创建一个SnmpTable实例

SnmpTabletable=newSnmpTable();

//设置ip地址

table.setTargetHost(remoteHost);

//加载MIB信息库的模型和设置表的OID加载失败的话则抛出异常

try{

table.loadMibs("C:

\\Snmp\\AdventNet\\SNMPAPI\\mibs\\RFC1213-MIB");

table.setTableOID(tableoid);

}catch(Exceptionex){

}

System.out.println("Gettingtable.Tableitems:

");

//定义一个字符缓冲区

StringBuffersb=newStringBuffer();

try{Thread.sleep(10000);}//线程休眠10秒,

catch(InterruptedExceptionex){}

//把表要得列的名字放入sb字符缓冲区中

for(inti=0;i

{

switch(i){

case0:

;

case1:

;

case4:

;

case9:

;

case10:

sb.append(table.getColumnName(i)+"\t");

}

}

//打印出表的列的名字

System.out.println(sb.toString());

//定义一个字符缓冲区

StringBuffersb2=newStringBuffer();

//按照从行到列把表中的数据项放入到字符缓冲区中

for(intj=0;j

{

for(inti=0;i

{

switch(i){

case0:

;

case1:

;

case4:

;

case9:

;

case10:

sb2.append(table.getValueAt(j,i)+"\t");

}

}

sb2.append("\n");

}

System.out.println(sb2.toString());

System.exit(0);

}

}

3)JpcapTip

importjava.io.*;

importjpcap.*;

importjava.util.*;

importjava.text.*;

publicclassJpcapTipimplementsJpcapHandler{

staticintj=0;

staticlongp=0,q=0;

IPPacketip;

Strings,s1;

Longs2;

staticlongtime11,time12;

publicvoidhandlePacket(Packetpacket){

if(packetinstanceofIPPacket)

{

System.out.println("ok");

ip=(IPPacket)packet;

if(j<2000)

{

try{

RandomAccessFilerf=newRandomAccessFile("packet3.txt","rw");

rf.seek(rf.length());

rf.writeBytes(ip.src_ip+"\t"+ip.dst_ip+"\t"+ip.protocol+"\t"+

ip.length+"\t"+ip.version+"\t"+ip.ident+"\t"+

ip.rsv_frag+"\t"+ip.offset+"\t"+ip.hop_limit+"\t"+

ip.rsv_tos+"\r\n");

rf.close();

}

catch(Exceptione){

e.printStackTrace();

}

j++;

}

else

{

time12=System.currentTimeMillis();

System.out.println(""+time12+"-"+time11+"="+(time12-time11)+"\ncapturecount:

"+j);

System.exit(0);

}

}

}

publicstaticvoidmain(String[]args)throwsjava.io.IOException

{

String[]devices=Jpcap.getDeviceList();

StringdeviceName=devices[0];

Jpcapjpcap=Jpcap.openDevice(deviceName,1028,true,100);

//即将打开的设备名//

//从设备上一次读取的最大字节数//

//说明是否将设备设为混杂模式的Boolean值//

//超时值//

time11=System.currentTimeMillis();

while(true){

jpcap.loopPacket(10,newJpcapTip());

}

}

}

JDBC编程要点(连接JDBC的步骤)书354的程序一定要看

(1)在程序的首部用import语句将java.sql包引入程序:

importjava.sql.*;

(2)使用Class.forName()方法加载相应数据库的JDBC驱动程序。

若以加载jdbc-odbc桥为例,则相应的语句格式为:

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

(3)定义JDBC的URL对象。

例如:

StringconURL="jdbc:

odbc:

TestDB";其中TestDB是我们设置的要创建的数据源。

(4)连接数据库。

Connections=DriverManager.getConnection(conURL);

(5)使用SQL语句对数据库进行操作。

(6)使用close()方法解除Java与数据库的连接并关闭数据库。

例如:

s.close();

5,编程

(1)socket通信

//Socke服务器程序

import.*;

importjava.io.*;

publicclassc15_5{

publicstaticfinalintport=8000;

publicstaticvoidmain(Stringargs[])

{

Stringstr;

try{//在端口port注册服务

ServerSocketserver=newServerSocket(port);//创建当前线程的监听对象

System.out.println("Started:

"+server);

Socketsocket=server.accept();//负责C/S通信的Socket对象

System.out.println("socket:

"+socket);

//获得对应Socket的输入/输出流

InputStreamfIn=socket.getInputStream();

OutputStreamfOut=socket.getOutputStream();

//建立数据流

InputStreamReaderisr=newInputStreamReader(fIn);

BufferedReaderin=newBufferedReader(isr);

PrintStreamout=newPrintStream(fOut);

InputStreamReaderuserisr=newInputStreamReader(System.in);

BufferedReaderuserin=newBufferedReader(userisr);

while(true){

System.out.println("等待客户端的消息...");

str=in.readLine();//读客户端传送的字符串

System.out.println("客户端:

"+str);//显示字符串

if(str.equals("end"))break;//如果是end,则退出

System.out.print("给客户端发送:

");

str=userin.readLine();

out.println(str)

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 兵器核科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1