华科-计算机网络实验报告-Java Socket编程-网络组建实验(25页).doc
《华科-计算机网络实验报告-Java Socket编程-网络组建实验(25页).doc》由会员分享,可在线阅读,更多相关《华科-计算机网络实验报告-Java Socket编程-网络组建实验(25页).doc(25页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-华科-计算机网络实验报告-Java Socket编程-网络组建实验-第 25 页课 程 实 验 报 告课程名称: 专业班级:计算机科学与技术1003班 学 号: 姓 名: 鲁辰 指导教师: 报告日期: 2013.05.06 计算机科学与技术学院目 录1实验二 Socket 编 程(E-Mail)31.1 实验目的31.2 实验要求31.3 实验内容31.4 实验过程41.4.1 需求分析41.4.2 界面51.4.3 写信71.4.4 收信121.5 实验体会182 实验2 网络组建与实施182.1 实验目的182.2 实验环境、要求182.2.1 实验实验环境182.2.2实验要求182.
2、3实验内容182.3.1实验1 组网实验182.3.2 实验2 路由配置实验192.3.3 实验3 VLAN划分实验202.3.4 实验4 访问控制配置实验212.4 实验过程212.4.1 系统的安装与配置212.4.2 实验1 组网实验222.4.3 实验2 路由配置实验322.4.4 实验3 VLAN划分实验442.4.5 实验4 访问控制配置实验472.5 实验体会501实验二 Socket 编 程(E-Mail)1.1 实验目的 了解应用层和运输层的作用及相关协议的工作原理和机制。 掌握SOCKET 编程的基本方法。1.2 实验要求 必须基于Socket 编程,不能直接借用任何现成的
3、组件。 提交实验设计报告和源代码;实验设计报告必须包括程序流程,源代码必须加详细注释。 基于自己的实验设计报告,通过实验课的上机试验,在TurboC 2.0(或者Visual C+ 6.0 或者Java)编程环境下将源代码编译成功,运行演示给实验指导教师检查。1.3 实验内容题目二:编写邮件客户端,要求如下:第一级: 实现一个基本的文本编辑器,能支持邮件的撰写和保存为草稿。 支持目录结构,能对邮件进行分类,并提供基本的收件箱、发件箱、草稿箱、垃圾箱等文件夹。 支持邮件帐号的配置与存储。 具备完成所需功能的基本图形用户界面(GUI),并具友好性。第二级: 支持将邮件服务器上的邮件完全下载到本地并
4、显示。 支持邮件下载时选择帐号管理器中的邮件服务器。 支持接收进度指示和接收完成指示。 具备完成所需功能的基本图形用户界面(GUI),并具友好性。第三级: 支持邮件下载仅下载邮件头,并能根据需要实时下载邮件全部内容。 支持服务器上邮件下载完成后对邮件是否删除的操作。 具备完成所需功能的基本图形用户界面(GUI),并具友好性。第四级: 支持普通文本邮件的发送。 可选择发送用帐号并可编辑发送用帐号。 支持发送进度指示和发送完成指示。 具备完成所需功能的基本图形用户界面(GUI),并具友好性。第五级: 支持HTML、RTF 格式邮件的撰写和发送。 支持邮件发送时添加附件。 支持抄写和密送功能。 支持
5、邮件的回复/转发功能。 具备完成所需功能的基本图形用户界面(GUI),并具友好性。说明:额外功能的实现,将视具体情况予以一定加分。1.4 实验过程1.4.1 需求分析对应检查表确定需要编写代码的模块序号检查内容基本内容1具备GUI界面界面:包括登录界面、收件夹、写信等2具有基本的邮件编辑器,可以撰写邮件3能够配置邮件服务器帐号并存储4支持POP3邮件完全下载收信:基于POP3协议5支持POP3邮件按需下载(先下载邮件头,根据需要全文下载)6支持下载保存/下载删除两种模式7支持纯文本邮件发送写信:基于SMTP协议8支持邮件发送/接收进度显示未完成9支持邮件本地分门别类存储未完成10支持邮件的回复
6、和转发写信(将相应内容当作参数传给对应函数)高级内容1支持MIME格式邮件的撰写和发送未完成2支持附件3支持邮件的抄写和密送4支持多邮件服务器,并可在发送和接收时选择邮件服务器根据上述表格对相应的模块开始编写代码。本次的实验使用Java编写,环境为Eclipse SDK。1.4.2 界面由于直接使用Eclipse编写界面的代码太过复杂,所以我使用了Eclipse的插件Window Builder,可直接将控件拖拽到窗体中,并生成相应的代码,双击按钮时也会生成按钮的动作相关函数。1)登录界面:按钮Login:单击Login之后,弹出主窗口,在调用主窗口的class时,将Mail Address和
7、 Password的内容作为参数传给主窗口的类,并交由主窗口进行验证。2)主界面:单击菜单,选择选项卡,会弹出相应的对话框。3) 写信:填写收件人、题目、内容后可发送。4) 收信:得到邮件的部分信息,单击Show,会弹出选中的邮件的完全显示,Download All会将邮件全部下载到本地。5)显示邮件单击Download&Save会将邮件保存至本地单击Download&Delete会将邮件保存到本地并从服务器上删除单击Reply会把寄件人地址、标题作为参数传给Reply类,并弹出Send Mail 对话框。单击Reply会把内容、标题作为参数传给Forward类,并弹出Send Mail 对话
8、框。1.4.3 写信1) 声明需要使用的库文件由于Eclipse很智能,不需要手动添加,当调用了某个函数时,如果没有添加相应的库文件,Eclipse会报错,提供修改方案,在前面添加相应的库文件。package MailClient1;import javax.swing.JButton;import javax.mail.Session;import javax.swing.JInternalFrame;import javax.swing.JPanel;import javax.swing.border.EmptyBorder;import MailClient1.MailClient;im
9、port javax.swing.JTextField;import java.awt.event.ActionListener;import java.awt.event.ActionEvent;import java.io.BufferedReader;import java.io.InputStreamReader;import java.io.PrintWriter;import .InetAddress;import .Socket;import .UnknownHostException;import java.util.Properties;import javax.swing.
10、JLabel;import java.io.*;import .*;import sun.misc.*;import javax.swing.JTextArea;/import sun.misc.BASE64Encoder;/import sun.misc.BASE64Decoder;2)定义SendFrame类的内容首先定义类包含的数据结构,名称和用途如表中所示:private JTextField txt_to;文本框的句柄,用于填写收件人地址private JTextField txt_subject;文本框的句柄,用于填写标题private JTextArea textArea;文本框
11、的句柄,用于填写邮件内容private String pusernameadd;字符串,保存当前用户的邮件地址private String ppasswd;字符串,保存密码private String psn_s_smtp;字符串,保存smtp服务器地址private String pusername1;字符串,保存用户名public class SendFrame extends JInternalFrame/* * */private static final long serialVersionUID = 1L;private JTextField txt_to;private JTex
12、tField txt_subject;private JTextArea textArea;private String pusernameadd;private String ppasswd;private String psn_s_smtp;private String pusername1;3)定义SendFrame类的构造函数SendFrame在这个函数中,主要将界面架构起来,邮件的发送并不是在这个函数中完成的。当Send按钮被单击后,消息被函数btnNewButton.addActionListener接收到,此时通过调用SendAction函数完成邮件的发送。public Send
13、Frame(final String sn_username,final String sn_passwd,final String sn_s_smtp,final String usernamer1) pusernameadd=sn_username;ppasswd=sn_passwd;psn_s_smtp=sn_s_smtp;pusername1=usernamer1;/InterfaceJPanel contentPane; /super(); setClosable(true); setIconifiable(true); setTitle(Send Mail); setBounds(
14、50,50,452,380); contentPane = new JPanel();contentPane.setBorder(new EmptyBorder(5, 5, 5, 5);setContentPane(contentPane);contentPane.setLayout(null);JButton btnNewButton = new JButton(Send);btnNewButton.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) try SendAction(
15、txt_to.getText(),textArea.getText(),txt_subject.getText(); catch (Exception e1) / TODO Auto-generated catch blocke1.printStackTrace(););btnNewButton.setBounds(88, 294, 72, 24);contentPane.add(btnNewButton);txt_to = new JTextField();txt_to.setBounds(88, 25, 334, 24);contentPane.add(txt_to);txt_to.set
16、Columns(10);txt_to.setText(networktest222);txt_subject = new JTextField();txt_subject.setText(Test11);txt_subject.setBounds(88, 62, 334, 24);contentPane.add(txt_subject);txt_subject.setColumns(10);JLabel lblYour = new JLabel(To:);lblYour.setBounds(11, 28, 72, 18);contentPane.add(lblYour);JLabel lblS
17、ubject = new JLabel(Subject:);lblSubject.setBounds(11, 65, 72, 18);contentPane.add(lblSubject);JLabel lblConstent = new JLabel(Constent:);lblConstent.setBounds(11, 108, 72, 18);contentPane.add(lblConstent);JButton btnQuit = new JButton(Quit);btnQuit.addActionListener(new ActionListener() public void
18、 actionPerformed(ActionEvent e) );btnQuit.setBounds(350, 293, 72, 25);contentPane.add(btnQuit);textArea = new JTextArea();textArea.setBounds(88, 106, 334, 175);textArea.setText(The existence only exists in peoples perception, nwhich, by nature, is of vanity.);contentPane.add(textArea);setVisible(tru
19、e); 4)完成寄信操作的函数SendAction使用了计算机网络实验SOCKET编程指导手册中的代码,收件人、内容、被当作参数传如,并赋值SendAction中的变量to、mailConstent而发件人地址、smtp服务器地址、用户名、密码从类的数据结构里面读取。public int SendAction(String to1,String constent1,String subject1) throws ExceptionString mailContent = ; /邮件报文String response = ; /来自服务器的应答String mailServer = ; /邮件服
20、务器String from = ; /发件人地址String to = ; /收件人地址/设置邮件服务器、发件人地址、收件人地址mailServer = psn_s_smtp;from = pusernameadd;to = to1;/设置邮件正文mailContent =From: + from + n +To: + to + n +Subject: + subject1 + n+Constent: + constent1 +n;/?/得到本机主机名String hostName = InetAddress.getLocalHost().getHostName();/建立一个到邮件服务器的连
21、接,端口号25Socket s = new Socket(mailServer,25);/将SOCKET 输入流连接到带缓冲功能的/输入流BufferedReader,以便一次读一行来自/服务器的应答报文BufferedReader inFromServer = new BufferedReader(new InputStreamReader(s.getInputStream();/将SOCKET 输出流连接到带缓冲功能的/ 输出流PrintWriter,以便一次输出一行报文到服务器PrintWriter outToServer =new PrintWriter(s.getOutputStre
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 华科-计算机网络实验报告-Java Socket编程-网络组建实验25页 华科 计算机网络 实验 报告 Java Socket 编程 网络 组建 25
限制150内