网友您好, 请在下方输入框内输入要搜索的题目:

题目内容 (请给出正确答案)

● 试题三

阅读以下说明和Java程序代码,将应填入(n)处的字句写在答题纸的对应栏内。

【说明】

1.SMTP是发送E-mail的协议,常用以下5条命令发送E-mail:

·HELO<SP><domain><CRLF>,与SMTP服务器握手,传送本机域名;

·MAIL<SP>FROM:<reverse-path><CRLF>,传送发信者的信箱名称;

·RCPT<SP>TO:<forward-path><CRLF>,传送接收者的信箱名称;

·DATA<CRLF>,发送邮件数据(包括信头和信体);

·QUIT<CRLF>,退出与SMTP服务器的连接。

2.试题中直接利用的类及方法如下:

(1)类ServerSocket(int port)实现TCP服务器接口(socket),它提供两种构造函数,用它们来指定服务器插口所用的端口,并监听到达的连接请求。类中的主要方法有:

accept( ):启动服务器插口监听并等待,直到建立连接为止,一旦建立连接就返回Socket类的一个对象。

getInetAddress( ):返回插口所连接的主机地址。

getLocaIPort( ):返回在服务器插口上建立了连接的端口。

close( ):关闭服务器插口。

(2)类InetAddress包装了Internet地址。类中的主要方法有:

getLocaIHost( ):返回一个代表本机Internet地址的InetAddress对象。

getaddress( ):获得数字表示的IP地址。

getHostName( ):获得域名。

(3)类Socket实现基于连接的客户插口。类中的主要方法有getInetAddress( ):返回一个与插口连接的客户机的Internet地址,其类型为InetAd-dress。getInputStream( ):用来访问与插口相关的输入流。getOutputStream( ):用来访问与插口机关的输出流。close( ):关闭插口。

(4)readLine( )是输入流类的一个方法,用于服务器或客户从对方读入一行输入流信息。

(5)用户自定义类NVTInputStream(InputStream inStream, OutputStream outStream)实现了网络虚拟终端输入接口。

(6)用户自定义类NVTOutputStream(OutputStream outStream)实现了网络虚拟终端输出接口。

3.下面是用Java语言实现的一个简单SMTP服务器程序的部分代码。

【程序代码】

import java.net. * ;

import java.io. * ;

import jdg.yan.NVTInputStream;//用户自定义类包

import jdg.yan.NVTOutputStream;//用户自定义类包

public class SMTPServer App

{

public static void main(String args[ ])

{

SMTPServer server=new SMTPServer( );

server.run( );

}

}

class SMTPServer

{

static final int HELO=1;

static final int MAIL=2;

static final int RCPT=3;

static final int DATA=4;

static final int END _DATA=5;

static final int QUIT=6;

static final int FINISHED=9;

NVTOutputStream out;

NVTInputStream in;

String hostName;

public SMTPServer( )

{

super( );

}

public void run( ){

try {

ServerSocket server= (1) ;//在1145号端口建立TCP服务器插口

int localPort=server.getLocalPort();//监听连接端口

hostNama= (2) ;//获取本地主机域名

System.out.println("listening on port"+localPort+".");

boolean finished=false;

do {

Socket client= (3) ;//监听等待,直到建立连接,返回对象client

String destName= (4) ;//获得所连接的客户主机IP地址的域名

int destPort=client.getPort (); //所连接的客户主机端口号

System.out println("Accepted connection to"+destNama+"on port"+destPort+".");

//控制台显示连接

out=new NVTOutputStream(client.getOutputStream());

in=new NVTInputStream( (5) ); //建立与连接关联的输入流

(6) ;//接收邮件

(7) ;//关闭连接对象

}while(!finished) ;

}catch (UnknownHostException ex) {

System.out.println("UnknownHostException occurred.");//出错处理

}cath(IOException ex) {

System.out.println ("IOException occurred.");

}

}

void getMail(){//实现SMTP的子集,从客户接收邮件

out.println("Server220"+hostName+"Ready!");

int state=HELO;//设置状态为HELO,state保存与客户通信的状态

do{//接收并处理从邮件客户接收到的命令

String line="";

out.println("Server 250 HELO,OK!");

try{

line= (8) ;//从虚拟终端读取一行

if(line==null) state=FINISHED;

}catch(IOException ex){

System.out.println("Server IOException occurred.");

System.exit (1) ;

}

switch(state){

case HELO:

if( (9) )//若该行信息为传送本机域名

{

out.println("Server 250 Hello");

System.out.println(line);

state=MAIL;

}else{

out.println("Server 500 ERROR");

System.out.println("Server"+line);

}

state=FINISHED;

break;

case MAIL://省略代码

case RCPT://省略代码

case DATA:

if( (10) )//若该行信息为发送邮件数据

{

out.println("354 mail input;end withCRLF.CRLF");

System.out.println(line);

state=END_DATA;

}else{

out.println("500 ERROR");

System.out.println(line);

}

break;

case END_DATA;//代码省略

case QUIT://代码省略

}

}while(state!=FINISHED);

}

//判断客户收到的命令是否与指定的命令字符串相匹配

boolean commandIs(String s,String line){

int n=s.length( );

if(s.equalsIgnoreCase(line.substring(0,n)))return true;

return false;

}

}


参考答案

更多 “ ● 试题三阅读以下说明和Java程序代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】1.SMTP是发送E-mail的协议,常用以下5条命令发送E-mail:·HELOSPdomainCRLF,与SMTP服务器握手,传送本机域名;·MAILSPFROM:reverse-pathCRLF,传送发信者的信箱名称;·RCPTSPTO:forward-pathCRLF,传送接收者的信箱名称;·DATACRLF,发送邮件数据(包括信头和信体);·QUITCRLF,退出与SMTP服务器的连接。2.试题中直接利用的类及方法如下:(1)类ServerSocket(int port)实现TCP服务器接口(socket),它提供两种构造函数,用它们来指定服务器插口所用的端口,并监听到达的连接请求。类中的主要方法有:accept( ):启动服务器插口监听并等待,直到建立连接为止,一旦建立连接就返回Socket类的一个对象。getInetAddress( ):返回插口所连接的主机地址。getLocaIPort( ):返回在服务器插口上建立了连接的端口。close( ):关闭服务器插口。(2)类InetAddress包装了Internet地址。类中的主要方法有:getLocaIHost( ):返回一个代表本机Internet地址的InetAddress对象。getaddress( ):获得数字表示的IP地址。getHostName( ):获得域名。(3)类Socket实现基于连接的客户插口。类中的主要方法有getInetAddress( ):返回一个与插口连接的客户机的Internet地址,其类型为InetAd-dress。getInputStream( ):用来访问与插口相关的输入流。getOutputStream( ):用来访问与插口机关的输出流。close( ):关闭插口。(4)readLine( )是输入流类的一个方法,用于服务器或客户从对方读入一行输入流信息。(5)用户自定义类NVTInputStream(InputStream inStream, OutputStream outStream)实现了网络虚拟终端输入接口。(6)用户自定义类NVTOutputStream(OutputStream outStream)实现了网络虚拟终端输出接口。3.下面是用Java语言实现的一个简单SMTP服务器程序的部分代码。【程序代码】import java.net. * ;import java.io. * ;import jdg.yan.NVTInputStream;//用户自定义类包import jdg.yan.NVTOutputStream;//用户自定义类包public class SMTPServer App{public static void main(String args[ ]){SMTPServer server=new SMTPServer( );server.run( );}}class SMTPServer{static final int HELO=1;static final int MAIL=2;static final int RCPT=3;static final int DATA=4;static final int END _DATA=5;static final int QUIT=6;static final int FINISHED=9;NVTOutputStream out;NVTInputStream in;String hostName;public SMTPServer( ){super( );}public void run( ){try {ServerSocket server= (1) ;//在1145号端口建立TCP服务器插口int localPort=server.getLocalPort();//监听连接端口hostNama= (2) ;//获取本地主机域名System.out.println("listening on port"+localPort+".");boolean finished=false;do {Socket client= (3) ;//监听等待,直到建立连接,返回对象clientString destName= (4) ;//获得所连接的客户主机IP地址的域名int destPort=client.getPort (); //所连接的客户主机端口号System.out println("Accepted connection to"+destNama+"on port"+destPort+".");//控制台显示连接out=new NVTOutputStream(client.getOutputStream());in=new NVTInputStream( (5) ); //建立与连接关联的输入流(6) ;//接收邮件(7) ;//关闭连接对象}while(!finished) ;}catch (UnknownHostException ex) {System.out.println("UnknownHostException occurred.");//出错处理}cath(IOException ex) {System.out.println ("IOException occurred.");}}void getMail(){//实现SMTP的子集,从客户接收邮件out.println("Server220"+hostName+"Ready!");int state=HELO;//设置状态为HELO,state保存与客户通信的状态do{//接收并处理从邮件客户接收到的命令String line="";out.println("Server 250 HELO,OK!");try{line= (8) ;//从虚拟终端读取一行if(line==null) state=FINISHED;}catch(IOException ex){System.out.println("Server IOException occurred.");System.exit (1) ;}switch(state){case HELO:if( (9) )//若该行信息为传送本机域名{out.println("Server 250 Hello");System.out.println(line);state=MAIL;}else{out.println("Server 500 ERROR");System.out.println("Server"+line);}state=FINISHED;break;case MAIL://省略代码case RCPT://省略代码case DATA:if( (10) )//若该行信息为发送邮件数据{out.println("354 mail input;end withCRLF.CRLF");System.out.println(line);state=END_DATA;}else{out.println("500 ERROR");System.out.println(line);}break;case END_DATA;//代码省略case QUIT://代码省略}}while(state!=FINISHED);}//判断客户收到的命令是否与指定的命令字符串相匹配boolean commandIs(String s,String line){int n=s.length( );if(s.equalsIgnoreCase(line.substring(0,n)))return true;return false;}} ” 相关考题
考题 ●试题四阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】函数QuickSort是在一维数组A[n]上进行快速排序的递归算法。【函数】void QuickSort(int A[],int s,int t){int i=s,j=t+1,temp;int x=A[s];do{do i++;while (1) ;do j--;while(A[j]x);if(ij){temp=A[i]; (2) ; (3) ;}}while(ij);A[a]=A[j];A[j]=x;if(si-1) (4) ;if(j+1t) (5) ;}

考题 ●试题二阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】该程序运行后,输出下面的数字金字塔【程序】includestdio.hmain (){char max,next;int i;for(max=′1′;max=′9′;max++){for(i=1;i=20- (1) ;++i)printf(" ");for(next= (2) ;next= (3) ;next++)printf("%c",next);for(next= (4) ;next= (5) ;next--)printf("%c",next);printf("\n");}}

考题 ●试题一阅读下列说明和流程图,将应填入(n)的字句写在答题纸的对应栏内。【说明】下列流程图(如图4所示)用泰勒(Taylor)展开式sinx=x-x3/3!+x5/5!-x7/7!+…+(-1)n×x 2n+1/(2n+1)!+…【流程图】图4计算并打印sinx的近似值。其中用ε(0)表示误差要求。

考题 试题三(共 15 分)阅读以下说明和 C 程序,将应填入 (n) 处的字句写在答题纸的对应栏内。

考题 图2-1是基于软交换的网络分层模型。请将选项应填入(n)处的字句写在答题纸对应的解答栏内。

考题 (a)智能网概念模型中分布功能平面模型如下图所示,请根据此图将应填入(n)处的 字句写在答题纸的对应栏内。

考题 图6-1是下一代网络的体系结构简图,请根据此简图将应填入(n)处的字句写在答题纸的对应栏内。

考题 阅读下列说明和C++-代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 某发票(lnvoice)由抬头(Head)部分、正文部分和脚注(Foot)部分构成。现采用装饰(Decorator)模式实现打印发票的功能,得到如图5-1所示的类图。 【C++代码】 #include using namespace std; class invoice{ public: (1){ cout

考题 阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】 某文件管理系统中定义了类OfficeDoc和DocExplorer,当类OfficeDoc发生变化时,类DocExplorer的所有对象都要更新其自身的状态,现采用观察者(Observer)设计模式来实现该需求,所设计的类图如图6-1所示。

考题 阅读下列说明和?C++代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 阅读下列说明和?Java代码,将应填入?(n)?处的字句写在答题纸的对应栏内。 【说明】 某快餐厅主要制作并出售儿童套餐,一般包括主餐(各类比萨)、饮料和玩具,其餐品种 类可能不同,但其制作过程相同。前台服务员?(Waiter)?调度厨师制作套餐。现采用生成器?(Builder)?模式实现制作过程,得到如图?6-1?所示的类图。