首页 考试吧论坛 Exam8视线 考试商城 网络课程 模拟考试 考友录 实用文档 求职招聘 论文下载
2011中考 | 2011高考 | 2012考研 | 考研培训 | 在职研 | 自学考试 | 成人高考 | 法律硕士 | MBA考试
MPA考试 | 中科院
四六级 | 职称英语 | 商务英语 | 公共英语 | 托福 | 雅思 | 专四专八 | 口译笔译 | 博思 | GRE GMAT
新概念英语 | 成人英语三级 | 申硕英语 | 攻硕英语 | 职称日语 | 日语学习 | 法语 | 德语 | 韩语
计算机等级考试 | 软件水平考试 | 职称计算机 | 微软认证 | 思科认证 | Oracle认证 | Linux认证
华为认证 | Java认证
公务员 | 报关员 | 银行从业资格 | 证券从业资格 | 期货从业资格 | 司法考试 | 法律顾问 | 导游资格
报检员 | 教师资格 | 社会工作者 | 外销员 | 国际商务师 | 跟单员 | 单证员 | 物流师 | 价格鉴证师
人力资源 | 管理咨询师考试 | 秘书资格 | 心理咨询师考试 | 出版专业资格 | 广告师职业水平
驾驶员 | 网络编辑
卫生资格 | 执业医师 | 执业药师 | 执业护士
会计从业资格考试会计证) | 经济师 | 会计职称 | 注册会计师 | 审计师 | 注册税务师
注册资产评估师 | 高级会计师 | ACCA | 统计师 | 精算师 | 理财规划师 | 国际内审师
一级建造师 | 二级建造师 | 造价工程师 | 造价员 | 咨询工程师 | 监理工程师 | 安全工程师
质量工程师 | 物业管理师 | 招标师 | 结构工程师 | 建筑师 | 房地产估价师 | 土地估价师 | 岩土师
设备监理师 | 房地产经纪人 | 投资项目管理师 | 土地登记代理人 | 环境影响评价师 | 环保工程师
城市规划师 | 公路监理师 | 公路造价师 | 安全评价师 | 电气工程师 | 注册测绘师 | 注册计量师
缤纷校园 | 实用文档 | 英语学习 | 作文大全 | 求职招聘 | 论文下载 | 访谈 | 游戏
您现在的位置: 考试吧(Exam8.com) > 软件水平考试 > 模拟试题 > 正文

2010年软考网络工程师模拟试题及答案解析一(下)

2010年软考网络工程师模拟试题及答案解析(下午题)

  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;

  }

  }

上一页  1 2 3 4 5 6 下一页
  相关推荐:推荐:2010年计算机软件水平考试必备完美攻略
       网络工程师:路由技巧之cisco路由器实现ADSL接入
       网络工程师:修改路由器和交换机密码的技巧
文章搜索
软件水平考试栏目导航
版权声明:如果软件水平考试网所转载内容不慎侵犯了您的权益,请与我们联系800@exam8.com,我们将会及时处理。如转载本软件水平考试网内容,请注明出处。