欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    实验七应用层网络编程.docx

    • 资源ID:17759068       资源大小:18.33KB        全文页数:15页
    • 资源格式: DOCX        下载积分:1金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要1金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    实验七应用层网络编程.docx

    1、实验七应用层网络编程浙江大学城市学院实验报告课程名称 计算机网络应用 实验项目名称 实验七 应用层网络编程(一) 实验成绩 指导老师(签名) 日期 2014-06-03 一. 实验目的和要求1. 通过实现使用Java应用层客户端和服务器来获得关于使用Java Socket网络编程的经验(SMTP、POP3)。二. 实验内容、原理及实验结果与分析1. SMTP编程(参考电子讲义“网络编程参考资料-应用层.pdf”及教材“第2章 Socket编程”)阅读 “网络编程参考资料-应用层.pdf”中 8.3.1部分,实现“SMTP客户机实现”的源代码(SMTPClientDemo.java),并在机器上

    2、编译运行通过。(注:可输入城院SMTP邮件服务器或其他邮件服务器作为SMTP服务器)【程序源代码】SMTPClientDemo.javaimport java.io.*;import .*;import java.util.*;/ Chapter 8, Listing 1public class SMTPClientDemo protected int port = 25; protected String hostname = localhost; protected String from = ; protected String to = ; protected String subje

    3、ct = ; protected String body = ; protected Socket socket; protected BufferedReader br; protected PrintWriter pw; / Constructs a new instance of the SMTP Client public SMTPClientDemo() throws Exception try getInput(); sendEmail(); catch (Exception e) System.out.println (Error sending message - + e);

    4、public static void main(String args) throws Exception / Start the SMTP client, so it can send messages SMTPClientDemo client = new SMTPClientDemo(); / Check the SMTP response code for an error message protected int readResponseCode() throws Exception String line = br.readLine(); System.out.println(

    5、+msg); / Close all readers, streams and sockets protected void closeConnection() throws Exception pw.flush(); pw.close(); br.close(); socket.close(); / Send the QUIT protocol message, and terminate connection protected void sendQuit() throws Exception System.out.println(Sending QUIT); writeMsg(QUIT)

    6、; readResponseCode(); System.out.println(Closing Connection); closeConnection(); / Send an email message via SMTP, adhering to the protocol known as RFC 2821 protected void sendEmail() throws Exception System.out.println(Sending message now: Debug below); System.out.println(- + -); System.out.printl

    7、n(Opening Socket); socket = new Socket(this.hostname,this.port); System.out.println(Creating Reader & Writer); br = new BufferedReader(new InputStreamReader(socket.getInputStream(); pw = new PrintWriter(new OutputStreamWriter(socket.getOutputStream(); System.out.println(Reading first line); int code

    8、 = readResponseCode(); if(code != 220) socket.close(); throw new Exception(Invalid SMTP Server); System.out.println(Sending helo command); writeMsg(HELO +InetAddress.getLocalHost().getHostName(); code = readResponseCode(); if(code != 250) sendQuit(); throw new Exception(Invalid SMTP Server); System.

    9、out.println(Sending mail from command); writeMsg(MAIL FROM:); code = readResponseCode(); if(code != 250) sendQuit(); throw new Exception(Invalid from address); System.out.println(Sending rcpt to command); writeMsg(RCPT TO:); code = readResponseCode(); if(code != 250) sendQuit(); throw new Exception(

    10、Invalid to address); System.out.println(Sending data command); writeMsg(DATA); code = readResponseCode(); if(code != 354) sendQuit(); throw new Exception(Data entry not accepted); System.out.println(Sending message); writeMsg(Subject: +this.subject); writeMsg(To: +this.to); writeMsg(From: +this.from

    11、); writeMsg(); writeMsg(body); code = readResponseCode(); sendQuit(); if(code != 250) throw new Exception(Message may not have been sent correctly); else System.out.println(Message sent); / Obtain input from the user protected void getInput() throws Exception / Read input from user console String da

    12、ta=null; BufferedReader br = new BufferedReader(new InputStreamReader(System.in); / Request hostname for SMTP server System.out.print(Please enter SMTP server hostname: ); data = br.readLine(); if (data = null | data.equals() hostname=localhost; else hostname=data; / Request the senders email addres

    13、s System.out.print(Please enter FROM email address: ); data = br.readLine(); from = data; / Request the recipients email address System.out.print(Please enter TO email address :); data = br.readLine(); if(!(data = null | data.equals() to=data; System.out.print(Please enter subject: ); data = br.read

    14、Line(); subject=data; System.out.println(Please enter plain-text message (. character + on a blank line signals end of message):); StringBuffer buffer = new StringBuffer(); / Read until user enters a . on a blank line String line = br.readLine(); while(line != null) / Check for a ., and only a ., on

    15、 a line if(line.equalsIgnoreCase(.) break; buffer.append(line); buffer.append(n); line = br.readLine(); buffer.append(.n); body = buffer.toString(); 【实验结果与分析】2. POP3编程(参考电子讲义“网络编程参考资料-应用层.pdf”及教材“第2章 Socket编程”)阅读 “网络编程参考资料-应用层.pdf”中 8.3.2部分,实现“POP3客户实现”的源代码(Pop3ClientDemo.java),并在机器上编译运行通过。(注:可输入城院P

    16、OP3邮件服务器或其他邮件服务器作为POP3服务器)【程序源代码】Pop3ClientDemo.javaimport java.io.*;import .*;import java.util.*;public class Pop3ClientDemo protected int port = 110; protected String hostname = localhost; protected String username = ; protected String password = ; protected Socket socket; protected BufferedReader

    17、 br; protected PrintWriter pw; / Constructs a new instance of the POP3 client public Pop3ClientDemo() throws Exception try / Get user input getInput(); / Get mail messages displayEmails(); catch(Exception e) System.err.println (Error occured - details follow); e.printStackTrace(); System.out.println

    18、(e.getMessage(); / Returns TRUE if POP response indicates success, FALSE if failure protected boolean responseIsOk() throws Exception String line = br.readLine(); System.out.println( +line); / 和 SMTP 不同的地方,POP3 的回覆不再是一个 number 而是 / +OK 来代表要求成功。失败则以 -ERR 来代表。 return line.toUpperCase().startsWith(+OK)

    19、; / Reads a line from the POP server, and displays it to screen protected String readLine(boolean debug) throws Exception String line = br.readLine(); / Append a character to indicate this is a server protocol response if (debug) System.out.println( +msg); / Close all writers, streams and sockets pr

    20、otected void closeConnection() throws Exception pw.flush(); pw.close(); br.close(); socket.close(); / Send the QUIT command, and close connection protected void sendQuit() throws Exception System.out.println(Sending QUIT); writeMsg(QUIT); readLine(true); System.out.println(Closing Connection); close

    21、Connection(); / Display emails in a message protected void displayEmails() throws Exception BufferedReader userinput = new BufferedReader( new InputStreamReader (System.in) ); System.out.println(Displaying mailbox with protocol commands + and responses below); System.out.println(- + -); / Open a con

    22、nection to POP3 server System.out.println(Opening Socket); socket = new Socket(this.hostname, this.port); br = new BufferedReader(new InputStreamReader(socket.getInputStream(); pw = new PrintWriter(new OutputStreamWriter(socket.getOutputStream(); / If response from server is not okay if(! responseIs

    23、Ok() socket.close(); throw new Exception(Invalid POP3 Server); / Login by sending USER and PASS commands System.out.println(Sending username); writeMsg(USER +this.username); if(!responseIsOk() sendQuit(); throw new Exception(Invalid username); System.out.println(Sending password); writeMsg(PASS +thi

    24、s.password); if(!responseIsOk() sendQuit(); throw new Exception(Invalid password); / Get mail count from server . System.out.println(Checking mail); writeMsg(STAT); / . and parse for number of messages String line = readLine(true); StringTokenizer tokens = new StringTokenizer(line, ); / +OK tokens.n

    25、extToken(); / number of messages int messages = Integer.parseInt(tokens.nextToken(); / size of all messages int maxsize = Integer.parseInt(tokens.nextToken(); if (messages = 0) System.out.println (There are no messages.); sendQuit(); return; System.out.println (There are + messages + messages.); Sys

    26、tem.out.println(Press enter to continue.); userinput.readLine(); for(int i = 1; i = messages ; i+) System.out.println(Retrieving message number +i); writeMsg(RETR +i); System.out.println(-); line = readLine(false); while(line != null & !line.equals(.) line = readLine(false); System.out.println(-); S

    27、ystem.out.println(Press enter to continue. To stop, + type Q then enter); String response = userinput.readLine(); if (response.toUpperCase().startsWith(Q) break; sendQuit(); public static void main(String args) throws Exception Pop3ClientDemo client = new Pop3ClientDemo(); / Read user input protected void getInput() throws Exception String data=null; BufferedReader br = new BufferedReader(new InputStreamReader(System.in); System.out.print(


    注意事项

    本文(实验七应用层网络编程.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开