课程实验报告
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
importjavax.swing.JInternalFrame;
importjavax.swing.JPanel;
importjavax.swing.border.EmptyBorder;
importMailClient1.MailClient;
importjavax.swing.JTextField;
importjava.net.InetAddress;
importjava.net.Socket;
importjava.net.UnknownHostException;
importjava.util.Properties;
importjavax.swing.JLabel;
importjava.io.*;
支持服务器上邮件下载完成后对邮件是否删除的操作。
具备完成所需功能的基本图形用户界面(GUI),并具友好性。
第四级:
支持普通文本邮件的发送。
可选择发送用帐号并可编辑发送用帐号。
支持发送进度指示和发送完成指示。
具备完成所需功能的基本图形用户界面(GUI),并具友好性。
第五级:
支持HTML、RTF格式邮件的撰写和发送。
contentPane.add(txt_subject);
txt_subject.setColumns(10);
JLabel lblYour =newJLabel("To:");
lblYour.setBounds(11, 28, 72, 18);
contentPane.add(lblYour);
JLabel lblSubject =newJLabel("Subject:");
txt_to.setColumns(10);
txt_to.setText("networktest222@163.com");
txt_subject=newJTextField();
txt_subject.setText("Test11");
txt_subject.setBounds(88, 62, 334, 24);
contentPane.setLayout(null);
JButton btnNewButton =newJButton("Send");
btnNewButton.addActionListener(newActionListener() {
publicvoidactionPerformed(ActionEvent e) {
privateJTextFieldtxt_to;
privateJTextFieldtxt_subject;
privateJTextAreatextArea;
privateStringpusernameadd;
privateStringppasswd;
privateStringpsn_s_smtp;
privateStringpusername1;
privateStringppasswd;
字符串,保存密码
privateStringpsn_s_smtp;
字符串,保存smtp服务器地址
privateStringpusername1;
字符串,保存用户名
publicclassSendFrameextendsJInternalFrame{
/**
*
*/
privatestaticfinallongserialVersionUID= 1L;
JButton btnQuit =newJButton("Quit");
btnQuit.addActionListener(newActionListener() {
publicvoidactionPerformed(ActionEvent e) {
}
});
btnQuit.setBounds(350, 293, 72, 25);
课程实 验报告
课程名称:
专业班级:计算机科学与技术1003班
学号:
姓名:鲁辰
指导教师:
报告日期:2013.05.06
计算机科学与技术学院
1
1.1
了解应用层和运输层的作用及相关协议的工作原理和机制。
掌握SOCKET编程的基本方法。
1.2
必须基于Socket编程,不能直接借用任何现成的组件。
提交Βιβλιοθήκη Baidu验设计报告和源代码;实验设计报告必须包括程序流程,源代码必须加详细注释。
1.4.3
1) 声明需要使用的库文件
由于Eclipse很智能,不需要手动添加,当调用了某个函数时,如果没有添加相应的库文件,Eclipse会报错,提供修改方案,在前面添加相应的库文件。
packageMailClient1;
importjavax.swing.JButton;
importjavax.mail.Session;
1)登录界面:
按钮Login:单击Login之后,弹出主窗口,在调用主窗口的class时,将Mail Address和 Password的内容作为参数传给主窗口的类,并交由主窗口进行验证。
2)主界面:
单击菜单,选择选项卡,会弹出相应的对话框。
3) 写信:
填写收件人、题目、内容后可发送。
4) 收信:
得到邮件的部分信息,单击Show,会弹出选中的邮件的完全显示,Download All会将邮件全部下载到本地。
}
});
btnNewButton.setBounds(88, 294, 72, 24);
contentPane.add(btnNewButton);
txt_to=newJTextField();
txt_to.setBounds(88, 25, 334, 24);
contentPane.add(txt_to);
contentPane.add(textArea);
setVisible(true);
}
4)完成寄信操作的函数SendAction
使用了《计算机网络实验SOCKET编程指导手册》中的代码,收件人、内容、被当作参数传如,并赋值SendAction中的变量to、mailConstent
而发件人地址、smtp服务器地址、用户名、密码从类的数据结构里面读取。
privateJTextFieldtxt_to;
文本框的句柄,用于填写收件人地址
privateJTextFieldtxt_subject;
文本框的句柄,用于填写标题
privateJTextAreatextArea;
文本框的句柄,用于填写邮件内容
privateStringpusernameadd;
字符串,保存当前用户的邮件地址
importjava.net.*;
importsun.misc.*;
importjavax.swing.JTextArea;
//import sun.misc.BASE64Encoder;
//import sun.misc.BASE64Decoder;
2)定义SendFrame类的内容
首先定义类包含的数据结构,名称和用途如表中所示:
setTitle("Send Mail");
setBounds(50,50,452,380);
contentPane =newJPanel();
contentPane.setBorder(newEmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
基于自己的实验设计报告,通过实验课的上机试验,在TurboC 2.0(或者Visual C++ 6.0或者Java)编程环境下将源代码
编译成功,运行演示给实验指导教师检查。
1.3
题目二:
编写邮件客户端,要求如下:
第一级:
实现一个基本的文本编辑器,能支持邮件的撰写和保存为草稿。
支持目录结构,能对邮件进行分类,并提供基本的收件箱、发件箱、草稿箱、垃圾箱等文件夹。
contentPane.add(btnQuit);
textArea=newJTextArea();
textArea.setBounds(88, 106, 334, 175);
textArea.setText("The existence only exists in people's perception, \nwhich, by nature, is of vanity.");
3)定义SendFrame类的构造函数SendFrame
在这个函数中,主要将界面架构起来,邮件的发送并不是在这个函数中完成的。当Send按钮被单击后,消息被函数btnNewButton.addActionListener接收到,此时通过调用SendAction函数完成邮件的发送。
publicSendFrame(finalString sn_username,finalString sn_passwd,finalString sn_s_smtp,finalString usernamer1) {
3
能够配置邮件服务器帐号并存储
4
支持POP3邮件完全下载
收信:基于POP3协议
5
支持POP3邮件按需下载
(先下载邮件头,根据需要全文下载)
6
支持下载保存/下载删除两种模式
7
支持纯文本邮件发送
写信:基于SMTP协议
8
支持邮件发送/接收进度显示
未完成
9
支持邮件本地分门别类存储
未完成
10
支持邮件的回复和转发
写信(将相应内容当作参数传给对应函数)
高级内容
1
支持MIME格式邮件的撰写和发送
未完成
2
支持附件
3
支持邮件的抄写和密送
4
支持多邮件服务器,并可在发送和接收时选择邮件服务器
根据上述表格对相应的模块开始编写代码。
本次的实验使用Java编写,环境为Eclipse SDK。
1.4.2
由于直接使用Eclipse编写界面的代码太过复杂,所以我使用了Eclipse的插件Window Builder,可直接将控件拖拽到窗体中,并生成相应的代码,双击按钮时也会生成按钮的动作相关函数。
支持邮件发送时添加附件。
支持抄写和密送功能。
支持邮件的回复/转发功能。
具备完成所需功能的基本图形用户界面(GUI),并具友好性。
说明:额外功能的实现,将视具体情况予以一定加分。
1.4
1.4.1
对应检查表确定需要编写代码的模块
序号
检查内容
基本内容
1
具备GUI界面
界面:包括登录界面、收件夹、写信等
2
具有基本的邮件编辑器,可以撰写邮件
pusernameadd=sn_username;
ppasswd=sn_passwd;
psn_s_smtp=sn_s_smtp;
pusername1=usernamer1;
//Interface
JPanel contentPane;
//super();
setClosable(true);
setIconifiable(true);
try{
SendAction(txt_to.getText(),textArea.getText(),txt_subject.getText());
}catch(Exception e1) {
//TODOAuto-generated catch block
e1.printStackTrace();
}
importjava.awt.event.ActionListener;
importjava.awt.event.ActionEvent;
importjava.io.BufferedReader;
importjava.io.InputStreamReader;
importjava.io.PrintWriter;
5)显示邮件
单击Download&Save会将邮件保存至本地
单击Download&Delete会将邮件保存到本地并从服务器上删除
单击Reply会把寄件人地址、标题作为参数传给Reply类,并弹出Send Mail 对话框。
单击Reply会把内容、标题作为参数传给Forward类,并弹出Send Mail 对话框。
lblSubject.setBounds(11, 65, 72, 18);
contentPane.add(lblSubject);
JLabel lblConstent =newJLabel("Constent:");
lblConstent.setBounds(11, 108, 72, 18);
contentPane.add(lblConstent);
支持邮件帐号的配置与存储。
具备完成所需功能的基本图形用户界面(GUI),并具友好性。
第二级:
支持将邮件服务器上的邮件完全下载到本地并显示。
支持邮件下载时选择帐号管理器中的邮件服务器。
支持接收进度指示和接收完成指示。
具备完成所需功能的基本图形用户界面(GUI),并具友好性。
第三级:
支持邮件下载仅下载邮件头,并能根据需要实时下载邮件全部内容。
importjavax.swing.JPanel;
importjavax.swing.border.EmptyBorder;
importMailClient1.MailClient;
importjavax.swing.JTextField;
importjava.net.InetAddress;
importjava.net.Socket;
importjava.net.UnknownHostException;
importjava.util.Properties;
importjavax.swing.JLabel;
importjava.io.*;
支持服务器上邮件下载完成后对邮件是否删除的操作。
具备完成所需功能的基本图形用户界面(GUI),并具友好性。
第四级:
支持普通文本邮件的发送。
可选择发送用帐号并可编辑发送用帐号。
支持发送进度指示和发送完成指示。
具备完成所需功能的基本图形用户界面(GUI),并具友好性。
第五级:
支持HTML、RTF格式邮件的撰写和发送。
contentPane.add(txt_subject);
txt_subject.setColumns(10);
JLabel lblYour =newJLabel("To:");
lblYour.setBounds(11, 28, 72, 18);
contentPane.add(lblYour);
JLabel lblSubject =newJLabel("Subject:");
txt_to.setColumns(10);
txt_to.setText("networktest222@163.com");
txt_subject=newJTextField();
txt_subject.setText("Test11");
txt_subject.setBounds(88, 62, 334, 24);
contentPane.setLayout(null);
JButton btnNewButton =newJButton("Send");
btnNewButton.addActionListener(newActionListener() {
publicvoidactionPerformed(ActionEvent e) {
privateJTextFieldtxt_to;
privateJTextFieldtxt_subject;
privateJTextAreatextArea;
privateStringpusernameadd;
privateStringppasswd;
privateStringpsn_s_smtp;
privateStringpusername1;
privateStringppasswd;
字符串,保存密码
privateStringpsn_s_smtp;
字符串,保存smtp服务器地址
privateStringpusername1;
字符串,保存用户名
publicclassSendFrameextendsJInternalFrame{
/**
*
*/
privatestaticfinallongserialVersionUID= 1L;
JButton btnQuit =newJButton("Quit");
btnQuit.addActionListener(newActionListener() {
publicvoidactionPerformed(ActionEvent e) {
}
});
btnQuit.setBounds(350, 293, 72, 25);
课程实 验报告
课程名称:
专业班级:计算机科学与技术1003班
学号:
姓名:鲁辰
指导教师:
报告日期:2013.05.06
计算机科学与技术学院
1
1.1
了解应用层和运输层的作用及相关协议的工作原理和机制。
掌握SOCKET编程的基本方法。
1.2
必须基于Socket编程,不能直接借用任何现成的组件。
提交Βιβλιοθήκη Baidu验设计报告和源代码;实验设计报告必须包括程序流程,源代码必须加详细注释。
1.4.3
1) 声明需要使用的库文件
由于Eclipse很智能,不需要手动添加,当调用了某个函数时,如果没有添加相应的库文件,Eclipse会报错,提供修改方案,在前面添加相应的库文件。
packageMailClient1;
importjavax.swing.JButton;
importjavax.mail.Session;
1)登录界面:
按钮Login:单击Login之后,弹出主窗口,在调用主窗口的class时,将Mail Address和 Password的内容作为参数传给主窗口的类,并交由主窗口进行验证。
2)主界面:
单击菜单,选择选项卡,会弹出相应的对话框。
3) 写信:
填写收件人、题目、内容后可发送。
4) 收信:
得到邮件的部分信息,单击Show,会弹出选中的邮件的完全显示,Download All会将邮件全部下载到本地。
}
});
btnNewButton.setBounds(88, 294, 72, 24);
contentPane.add(btnNewButton);
txt_to=newJTextField();
txt_to.setBounds(88, 25, 334, 24);
contentPane.add(txt_to);
contentPane.add(textArea);
setVisible(true);
}
4)完成寄信操作的函数SendAction
使用了《计算机网络实验SOCKET编程指导手册》中的代码,收件人、内容、被当作参数传如,并赋值SendAction中的变量to、mailConstent
而发件人地址、smtp服务器地址、用户名、密码从类的数据结构里面读取。
privateJTextFieldtxt_to;
文本框的句柄,用于填写收件人地址
privateJTextFieldtxt_subject;
文本框的句柄,用于填写标题
privateJTextAreatextArea;
文本框的句柄,用于填写邮件内容
privateStringpusernameadd;
字符串,保存当前用户的邮件地址
importjava.net.*;
importsun.misc.*;
importjavax.swing.JTextArea;
//import sun.misc.BASE64Encoder;
//import sun.misc.BASE64Decoder;
2)定义SendFrame类的内容
首先定义类包含的数据结构,名称和用途如表中所示:
setTitle("Send Mail");
setBounds(50,50,452,380);
contentPane =newJPanel();
contentPane.setBorder(newEmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
基于自己的实验设计报告,通过实验课的上机试验,在TurboC 2.0(或者Visual C++ 6.0或者Java)编程环境下将源代码
编译成功,运行演示给实验指导教师检查。
1.3
题目二:
编写邮件客户端,要求如下:
第一级:
实现一个基本的文本编辑器,能支持邮件的撰写和保存为草稿。
支持目录结构,能对邮件进行分类,并提供基本的收件箱、发件箱、草稿箱、垃圾箱等文件夹。
contentPane.add(btnQuit);
textArea=newJTextArea();
textArea.setBounds(88, 106, 334, 175);
textArea.setText("The existence only exists in people's perception, \nwhich, by nature, is of vanity.");
3)定义SendFrame类的构造函数SendFrame
在这个函数中,主要将界面架构起来,邮件的发送并不是在这个函数中完成的。当Send按钮被单击后,消息被函数btnNewButton.addActionListener接收到,此时通过调用SendAction函数完成邮件的发送。
publicSendFrame(finalString sn_username,finalString sn_passwd,finalString sn_s_smtp,finalString usernamer1) {
3
能够配置邮件服务器帐号并存储
4
支持POP3邮件完全下载
收信:基于POP3协议
5
支持POP3邮件按需下载
(先下载邮件头,根据需要全文下载)
6
支持下载保存/下载删除两种模式
7
支持纯文本邮件发送
写信:基于SMTP协议
8
支持邮件发送/接收进度显示
未完成
9
支持邮件本地分门别类存储
未完成
10
支持邮件的回复和转发
写信(将相应内容当作参数传给对应函数)
高级内容
1
支持MIME格式邮件的撰写和发送
未完成
2
支持附件
3
支持邮件的抄写和密送
4
支持多邮件服务器,并可在发送和接收时选择邮件服务器
根据上述表格对相应的模块开始编写代码。
本次的实验使用Java编写,环境为Eclipse SDK。
1.4.2
由于直接使用Eclipse编写界面的代码太过复杂,所以我使用了Eclipse的插件Window Builder,可直接将控件拖拽到窗体中,并生成相应的代码,双击按钮时也会生成按钮的动作相关函数。
支持邮件发送时添加附件。
支持抄写和密送功能。
支持邮件的回复/转发功能。
具备完成所需功能的基本图形用户界面(GUI),并具友好性。
说明:额外功能的实现,将视具体情况予以一定加分。
1.4
1.4.1
对应检查表确定需要编写代码的模块
序号
检查内容
基本内容
1
具备GUI界面
界面:包括登录界面、收件夹、写信等
2
具有基本的邮件编辑器,可以撰写邮件
pusernameadd=sn_username;
ppasswd=sn_passwd;
psn_s_smtp=sn_s_smtp;
pusername1=usernamer1;
//Interface
JPanel contentPane;
//super();
setClosable(true);
setIconifiable(true);
try{
SendAction(txt_to.getText(),textArea.getText(),txt_subject.getText());
}catch(Exception e1) {
//TODOAuto-generated catch block
e1.printStackTrace();
}
importjava.awt.event.ActionListener;
importjava.awt.event.ActionEvent;
importjava.io.BufferedReader;
importjava.io.InputStreamReader;
importjava.io.PrintWriter;
5)显示邮件
单击Download&Save会将邮件保存至本地
单击Download&Delete会将邮件保存到本地并从服务器上删除
单击Reply会把寄件人地址、标题作为参数传给Reply类,并弹出Send Mail 对话框。
单击Reply会把内容、标题作为参数传给Forward类,并弹出Send Mail 对话框。
lblSubject.setBounds(11, 65, 72, 18);
contentPane.add(lblSubject);
JLabel lblConstent =newJLabel("Constent:");
lblConstent.setBounds(11, 108, 72, 18);
contentPane.add(lblConstent);
支持邮件帐号的配置与存储。
具备完成所需功能的基本图形用户界面(GUI),并具友好性。
第二级:
支持将邮件服务器上的邮件完全下载到本地并显示。
支持邮件下载时选择帐号管理器中的邮件服务器。
支持接收进度指示和接收完成指示。
具备完成所需功能的基本图形用户界面(GUI),并具友好性。
第三级:
支持邮件下载仅下载邮件头,并能根据需要实时下载邮件全部内容。