计算机网络原理实验报告
计算机网络实验二实验报告讲解

计算机网络实验二实验报告讲解实验二:网络传输性能的测试与评估实验目的:1.掌握网络传输性能的测试方法;2.了解网络传输性能评估的参数;3. 学会使用JPerf工具进行网络传输性能测试。
实验环境:1. JPerf软件;2. 两台运行Windows操作系统的计算机;3.以太网交换机;4.网线,以连接两台计算机及交换机。
实验步骤:1.配置网络环境连接两台计算机和交换机,保证网络连接正常。
2. 安装JPerf软件在两台计算机上分别安装JPerf软件。
3. 运行JPerf服务器选择一台计算机作为服务器,打开JPerf程序,选择“Server”模式,并设置端口号。
4. 运行JPerf客户端打开另一台计算机的JPerf程序,选择“Client”模式,并输入服务器的IP地址和端口号。
5.设置测试参数在JPerf客户端上,设置传输模式(TCP/UDP)、传输时长和数据包大小等参数,并点击“Start”按钮开始测试。
6.分析结果测试结束后,JPerf会输出传输性能测试的结果,包括带宽、丢包率、延迟等参数。
根据这些参数可以评估网络的传输性能。
实验结果与分析:在测试过程中,我们选择了TCP传输模式,传输时长设置为30秒,数据包大小为1MB。
根据测试结果,我们得到了以下性能参数:带宽:100Mbps丢包率:0%延迟:10ms根据带宽和延迟,我们可以评估网络的传输性能。
带宽表示单位时间内能够传输的数据量,带宽越大,传输速度越快。
延迟表示数据从发送方到接收方的传输延时,延迟越小,传输速度越快。
丢包率表示发送的数据在传输过程中丢失的比例,丢包率越小,数据传输越可靠。
在这个实验中,我们得到了较高的带宽和较低的延迟,说明网络的传输性能较好。
同时,丢包率为0%,说明数据传输的可靠性也很高。
根据这些结果,我们可以对网络的传输性能进行评估。
如果带宽较小、延迟较大或丢包率较高,就会影响数据的传输速度和可靠性,从而降低网络的传输性能。
因此,在设计和配置网络时,需要考虑这些因素,以提高网络的传输性能。
计算机网络实验2报告

计算机网络实验2报告一、实验目的本次计算机网络实验 2 的主要目的是深入了解和掌握计算机网络中的相关技术和概念,通过实际操作和实验分析,提高对计算机网络的理解和应用能力。
二、实验环境本次实验在学校的计算机实验室进行,使用的操作系统为 Windows 10,实验中所用到的软件和工具包括 Wireshark 网络协议分析工具、Packet Tracer 网络模拟软件等。
三、实验内容与步骤(一)网络拓扑结构的搭建使用 Packet Tracer 软件搭建了一个简单的星型网络拓扑结构,包括一台交换机、四台计算机和一台服务器。
为每台设备配置了相应的 IP 地址、子网掩码和网关等网络参数。
(二)网络协议分析1、启动 Wireshark 工具,选择对应的网络接口进行抓包。
2、在网络中进行文件传输、网页浏览等操作,观察 Wireshark 捕获到的数据包。
3、对捕获到的数据包进行分析,包括数据包的源地址、目的地址、协议类型、数据长度等信息。
(三)网络性能测试1、使用 Ping 命令测试网络中不同设备之间的连通性和延迟。
2、通过发送大量数据包,测试网络的带宽和吞吐量。
四、实验结果与分析(一)网络拓扑结构搭建结果成功搭建了星型网络拓扑结构,各设备之间能够正常通信,IP 地址配置正确,网络连接稳定。
(二)网络协议分析结果1、在文件传输过程中,观察到使用的主要协议为 TCP 协议,数据包有序且可靠地传输。
2、网页浏览时,发现涉及到 HTTP 协议的请求和响应,包括获取网页内容、图片等资源。
(三)网络性能测试结果1、 Ping 命令测试结果显示,网络中设备之间的延迟较低,均在可接受范围内,表明网络连通性良好。
2、带宽和吞吐量测试结果表明,网络能够满足一般的数据传输需求,但在大量数据并发传输时,可能会出现一定的拥塞现象。
五、实验中遇到的问题及解决方法(一)IP 地址配置错误在配置设备的 IP 地址时,出现了部分设备 IP 地址冲突的问题,导致网络通信异常。
计算机网络实验

计算机网络实验计算机网络实验简介计算机网络实验是计算机科学与技术专业中一门重要的实验课程。
通过这门实验课,学生可以深入了解计算机网络的原理与应用,掌握网络配置、网络安全等相关技术。
本文将介绍计算机网络实验的实验内容、实验环境和实验步骤。
实验内容计算机网络实验的内容涵盖了计算机网络的基本概念、协议,以及网络配置和网络安全等方面的知识。
实验内容主要包括以下几个方面:1. 网络连接配置:通过配置网络连接参数,如IP地质、子网掩码、默认网关等,实现网络设备之间的连接。
2. 网络通信实验:通过网络通信实验,学生可以了解网络通信的基本原理,如数据包的传输、路由选择等。
实验中,学生可以模拟两台主机之间的通信,观察数据包的传输过程。
3. 网络协议实验:学生可以通过实验来了解和掌握常用的网络协议,如TCP/IP协议、HTTP协议等。
通过实验,学生可以学习协议的工作原理、数据包的格式以及协议的应用。
4. 网络安全实验:网络安全是计算机网络中一个重要的方面。
通过网络安全实验,学生可以了解网络攻击的原理、防范措施等。
实验中,学生可以进行网络安全漏洞扫描、入侵检测等操作来加深对网络安全的了解。
实验环境计算机网络实验一般需要一定的实验环境来支持。
以下是一个常见的计算机网络实验环境的配置要求:- 实验室网络:实验室需要建立一个局域网,用于连接各个实验设备。
这个网络可以采用以太网结构,每台设备需要一个独立的IP地质。
- 实验设备:需要准备一些网络设备,如路由器、交换机、防火墙等,以及一些计算机作为主机。
这些设备需要进行配置,以建立起一个完整的网络环境。
- 软件工具:实验中需要使用一些网络工具,如Wireshark、Ping等,来进行网络调试和分析。
实验步骤下面是一般的计算机网络实验的步骤:1. 环境配置:需要配置实验环境,包括建立实验室网络、配置实验设备等。
2. 实验准备:在实验开始之前,需要查阅相关的实验资料,了解实验目标和所需的知识。
计算机网络实验报告(6篇)

计算机网络实验报告(6篇)计算机网络实验报告(通用6篇)计算机网络实验报告篇1一、实验目的1、熟悉微机的各个部件;2、掌握将各个部件组装成一台主机的方法和步骤;3、掌握每个部件的安装方法;4、了解微型计算机系统的基本配置;5、熟悉并掌握DOS操作系统的使用;6、掌握文件、目录、路径等概念;7、掌握常用虚拟机软件的安装和使用;8、熟悉并掌握虚拟机上WINDOWS操作系统的安装方法及使用;9、掌握使用启动U盘的制作和U盘安装windows操作系统的方法;10、了解WINDOWS操作系统的基本配置和优化方法。
二、实验内容1.将微机的各个部件组装成一台主机;2.调试机器,使其正常工作;3.了解计算机系统的基本配置。
4.安装及使用虚拟机软件;5.安装WINDOWS7操作系统;6.常用DOS命令的使用;7.学会制作启动U盘和使用方法;8.WINDOWS7的基本操作;9.操作系统的基本设置和优化。
三、实验步骤(参照实验指导书上的内容,结合实验过程中做的具体内容,完成此项内容的撰写)四、思考与总结(写实验的心得体会等)计算机网络实验报告篇2windows平台逻辑层数据恢复一、实验目的:通过运用软件R-Studio_5.0和winhe_对误格式化的硬盘或者其他设备进行数据恢复,通过实验了解windows平台逻辑层误格式化数据恢复原理,能够深入理解并掌握数据恢复软件的使用方法,并能熟练运用这些软件对存储设备设备进行数据恢复。
二、实验要求:运用软件R-Studio_5.0和winhe_对电脑磁盘或者自己的U盘中的删除的数据文件进行恢复,对各种文件进行多次尝试,音频文件、系统文件、文档文件等,对简单删除和格式化的磁盘文件分别恢复,并检查和验证恢复结果,分析两个软件的数据恢复功能差异与优势,进一步熟悉存储介质数据修复和恢复方法及过程,提高自身的对存储介质逻辑层恢复技能。
三、实验环境和设备:(1)Windows _P 或Windows 20__ Professional操作系统。
计算机网络实践报告5篇

计算机网络实践报告5篇(实用版)编制人:__________________审核人:__________________审批人:__________________编制单位:__________________编制时间:____年____月____日序言下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。
文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!并且,本店铺为大家提供各种类型的实用资料,如职场文书、书信函件、教学范文、演讲致辞、心得体会、学生作文、合同范本、规章制度、工作报告、其他资料等等,想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by this editor.I hope that after you download it, it can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you!Moreover, this store provides various types of practical materials for everyone, such as workplace documents, correspondence, teaching samples, speeches, insights, student essays, contract templates, rules and regulations, work reports, and other materials. If you want to learn about different data formats and writing methods, please pay attention!计算机网络实践报告5篇计算机网络实践报告1开学第一周我们就迎来了计算机网络实训,这门课程与上学期所学的计算机网络相对应,给了我们一个更深刻理解和掌握所学知识的机会。
《计算机网络》实验报告

一、实验目的1. 理解计算机网络的基本概念和结构。
2. 掌握网络设备的配置方法,包括交换机、路由器等。
3. 学习网络协议的作用和配置方法,如TCP/IP、DHCP等。
4. 通过实验加深对网络故障诊断和排除能力的培养。
二、实验内容1. 实验环境实验设备:一台PC机、一台交换机、一台路由器、双绞线、网线等。
实验软件:Windows操作系统、网络管理软件等。
2. 实验步骤(1)网络设备连接首先,将PC机通过网线连接到交换机的一个端口上。
然后,将交换机的另一个端口连接到路由器的WAN口。
最后,将路由器的LAN口连接到PC机的另一台交换机上。
(2)网络设备配置①交换机配置进入交换机命令行界面,配置交换机的基本参数,如VLAN ID、IP地址、子网掩码等。
②路由器配置进入路由器命令行界面,配置路由器的接口参数,如WAN口和LAN口的IP地址、子网掩码等。
同时,配置路由协议,如静态路由、动态路由等。
③PC机配置在PC机的网络设置中,将IP地址、子网掩码、默认网关等信息设置为与路由器LAN口相同的参数。
(3)网络测试①测试PC机与交换机之间的连通性在PC机中ping交换机的IP地址,检查PC机是否能够与交换机通信。
②测试PC机与路由器之间的连通性在PC机中ping路由器的IP地址,检查PC机是否能够与路由器通信。
③测试不同VLAN之间的连通性在PC机中ping另一个VLAN中的设备,检查不同VLAN之间的设备是否能够相互通信。
三、实验结果与分析1. 实验结果(1)PC机与交换机之间连通(2)PC机与路由器之间连通(3)不同VLAN之间的设备相互通信2. 实验分析通过本次实验,我们成功搭建了一个简单的计算机网络,并掌握了网络设备的配置方法。
在实验过程中,我们遇到了一些问题,如网络设备之间的连通性、VLAN之间的通信等。
通过查阅资料和调试,我们解决了这些问题,加深了对计算机网络的理解。
四、实验总结1. 通过本次实验,我们了解了计算机网络的基本概念和结构,掌握了网络设备的配置方法。
计算机网络综合实验报告参考5篇

计算机网络综合实验报告参考5篇计算机网络综合实验报告参考 (1) ××大学校园网解决方案一、需求分析建设一个以办公自动化、计算机辅助教学、现代计算机校园文化为核心,以现代网络技术为依托,技术先进、扩展性强、能覆盖全校主要楼宇的校园主干网络,将学校的各种pc机、工作站、终端设备和局域网连接起来,并与有关广域网相连,在网上宣传自己和获取Internet网上的教育资源。
形成结构合理,内外沟通的校园计算机系统,在此基础上建立满足教学、研究和管理工作需要的软硬件环境,开发各类信息库和应用系统,为学校各类人员提供充分的网络信息服务。
系统总体设计将本着总体规划、分步实施的原则,充分体现系统的技术先进性、高度的安全可靠性,同时具有良好的开放性、可扩展性、冗余性。
本着为学校着想,合理使用建设资金,使系统经济可行。
具体包括下以几个方面:1、内网络能够高速访问FTP服务器现在或上传文件实现资源共享功能,实现对不同类型的用户划分不同的权限,限制不同类型的用户只能访问特定的服务资源。
可以下载和上传资料文件,访问速度可以对指定的用户进行级别的划分。
2、建设Web服务器对外实现信息发布,对内实现教学教务管理。
网站发布学校新闻、通知、学校的活动等相关内容。
实现学生能够在网上进行成绩查询、网上报名、网上评教等功能;以及教师的信息查询、教学数据上传等。
3、建设邮件服务器以满足校园内部之间和内、外网这间的大量邮件传输的需求。
4、实现内网划分多个VLAN,实现校园内不同校区,不同楼宇,不同楼层的多客户接入。
5、内部实现PC间实现高速互访,同时可以访问互联网。
网络内同一IP段内的PC机可以通过网上邻居实现高速互访,传送资料文件等,解决不同楼宇,不同楼层之间通过移动存储设备传送数据费时、费力的问题。
6、内部用户的QoS管理,实现用户的分级管理功能,对用户下载和上传做相应的带宽限制。
对校园网络中的流量实现有效控制,对校园内的重要数据量可靠、稳定的传输如:语音、视频会议等的延迟和阻塞的敏感。
计算机网络实验报告-USTC

计算机网络实验报告-USTC 计算机网络实验报告USTC一、实验目的本次计算机网络实验旨在深入理解计算机网络的基本原理和关键技术,通过实际操作和观察,提高对网络协议、网络拓扑结构、网络性能优化等方面的认识和实践能力。
二、实验环境实验在USTC的计算机网络实验室进行,使用了以下硬件和软件设备:1、计算机:若干台配置相同的台式计算机,具备以太网接口和无线网卡。
2、网络设备:交换机、路由器、防火墙等。
3、操作系统:Windows 10 和 Linux(Ubuntu)。
4、网络模拟软件:Packet Tracer、Wireshark 等。
三、实验内容1、网络拓扑结构的搭建与分析使用 Packet Tracer 软件搭建了星型、总线型、环形和树形等常见的网络拓扑结构。
对不同拓扑结构的特点进行了分析,包括可靠性、扩展性、传输效率等方面。
通过模拟数据传输,观察了网络拥塞、冲突等现象,并分析了其原因和解决方法。
2、 IP 地址配置与子网划分在 Windows 和 Linux 操作系统中,手动配置了 IP 地址、子网掩码、网关和 DNS 服务器。
学习了子网划分的原理和方法,通过划分不同大小的子网,提高了网络地址的利用率。
使用 Ping 命令和网络扫描工具,测试了网络的连通性和可达性。
3、网络协议分析利用 Wireshark 软件捕获网络数据包,对 TCP、UDP、ICMP 等常见协议的数据包格式和字段进行了分析。
观察了协议的三次握手和四次挥手过程,理解了连接建立和释放的机制。
分析了网络中的广播、组播和单播通信方式,以及它们在不同应用场景中的优缺点。
4、网络性能优化调整了网络参数,如缓冲区大小、MTU 值等,观察对网络性能的影响。
实施了流量控制和拥塞控制策略,如滑动窗口机制、慢启动算法等,提高了网络的传输效率和稳定性。
对网络中的丢包、延迟和带宽利用率等性能指标进行了监测和分析,提出了相应的优化建议。
四、实验步骤1、网络拓扑结构搭建打开 Packet Tracer 软件,选择所需的网络设备和线缆。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
多线程Web服务器1实验目的:用JA V A语言开发一个多线程的WEB服务器,它能并行服务于多个请求。
发送网页文件,让网页文件能够通过在URL中制定端口号来被浏览器使用。
2实验代码及截图class ConnectionThread extends Thread {Socket client;int counter;public ConnectionThread(Socket cl,int c) {client = cl;counter = c;}public void run() // 线程体{try {String destIP=client.getInetAddress().toString(); // 客户机IP地址int destport=client.getPort(); // 客户机端口号System.out.println("Connection "+counter+":connected to "+destIP+" on port "+destport+".");PrintStream outstream=newPrintStream(client.getOutputStream());DataInputStream instream=newDataInputStream(client.getInputStream());String inline=instream.readLine(); // 读取Web浏览器提交的请求信息System.out.println("Received:"+inline);if (getrequest(inline)) { // 如果是GET请求String filename=getfilename(inline);File file=new File(filename);if (file.exists()) { // 若文件存在,则将文件送给Web 浏览器System.out.println(filename+" requested.");outstream.println("HTTP/1.0 200 OK");outstream.println("MIME_version:1.0");outstream.println("Content_Type:text/html");int len=(int)file.length();outstream.println("Content_Length:"+len);outstream.println("");sendfile(outstream,file); // 发送文件outstream.flush();} else { // 文件不存在时String notfound="<html><head><title>Not Found</title></head><body><h1>Error 404-file notfound</h1></body></html>";outstream.println("HTTP/1.0 404 no found");outstream.println("Content_Type:text/html");outstream.println("Content_Length:"+notfound.length()+2);outstream.println("");outstream.println(notfound);outstream.flush();}}long m1=1;while (m1<11100000){m1++;} // 延时client.close();} catch (IOException e) {System.out.println("Exception:"+e);}}/* 获取请求类型是否为“GET” */boolean getrequest(String s) {if (s.length()>0){if (s.substring(0,3).equalsIgnoreCase("GET"))return true;}return false;}/* 获取要访问的文件名 */String getfilename(String s) {String f=s.substring(s.indexOf(' ')+1);f=f.substring(0,f.indexOf(' '));try {if (f.charAt(0)=='/')f=f.substring(1);} catch (StringIndexOutOfBoundsException e) {System.out.println("Exception:"+e);}if (f.equals("")) f="index.html";return f;}/*把指定文件发送给Web浏览器 */void sendfile(PrintStream outs,File file) {try {DataInputStream in=new DataInputStream(new FileInputStream(file));int len=(int)file.length();byte buf[]=new byte[len];in.readFully(buf);outs.write(buf,0,len);outs.flush();in.close();} catch (Exception e) {System.out.println("Error retrieving file.");System.exit(1);}}}public class websever {public static void main(String[] args) {// TODO Auto-generated method stubint i=1, PORT=8081;ServerSocket server=null;Socket client=null;try {server=new ServerSocket(PORT);System.out.println("Web Server is listening on port "+server.getLocalPort());while(true){client=server.accept(); // 接受客户机的连接请求new ConnectionThread(client,i).start();i++;}} catch (Exception e) {System.out.println(e);}}}3实验软硬件环境eclipseWindows xpIE浏览器4实验步骤(1) 连接:Web浏览器与Web服务器建立连接,打开一个称为socket(套接字)的虚拟文件,此文件的建立标志着连接建立成功。
(2) 请求:Web浏览器通过socket向Web服务器提交请求。
HTTP的请求一般是GET或POST命令(POST用于FORM参数的传递)。
GET命令的格式为:GET 路径/文件名 HTTP/1.1文件名指出所访问的文件,HTTP/1.1指出Web浏览器使用的HTTP版本。
(3) 应答:Web浏览器提交请求后,通过HTTP协议传送给Web服务器。
Web服务器接到后,进行事务处理,处理结果又通过HTTP传回给Web浏览器,从而在Web浏览器上显示出所请求的页面。
为了告知 Web浏览器传送内容的类型,Web服务器首先传送一些HTTP头信息,然后传送具体内容(即HTTP体信息),HTTP头信息和HTTP体信息之间用一个空行分开。
(4) 关闭连接:当应答结束后,Web浏览器与Web服务器必须断开,以保证其它Web浏览器能够与Web服务器建立连接。
5实验心得Java中实现多线程有两种途径:继承Thread类或者实现Runnable接口。
此处使用了接口的方式生成线程,因为接口可以实现多继承,况且Runnable只有一个run方法,很适合继承。
在使用Thread的时候只需继承Thread,并且new一个实例出来,调用start()方法即可以启动一个线程。
在本次试验中,通过用java语言开发一个多线程的web服务器,能并行服务于多个请求,来掌握套接字编程技术,了解并运用http协议的作用原理,实现多线程web服务器设计。
6参考文献:,1计算机网络:自顶向下方法(原书第4版)/(美)库罗斯(Kurose,J.F.)等著;陈鸣译--北京:机械工业出版社,2008.122java从入门到精通:李钟尉,马文强,陈丹丹等编著;-- 清华大学出版社,2008.93实验指导书邮件客户机1实验目的:为发送者提供一个图形界面,其中包含:发送电子邮件地址、接受者电子邮件地址、邮件主题和本身。
开发一个Internet上的使用STMP协议的网络服务器的邮件客户端,在Windows XP,Windows7系统下,使用JA V A语言开发,并最终运行该程序。
2实验部分代码及截图:在发件人框中填写相应的信息,点击发送按钮即可向目标邮箱发送邮件。
public class MailMessage {public static void main(String[] args) {EventQueue.invokeLater(new Runnable() {public void run() {try {SendFrame frame = new SendFrame();frame.setVisible(true);} catch (Exception e) {e.printStackTrace();}/*** Create the frame.*/public SendFrame() {thisFrame=this;setTitle("Java Mailclient");setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setBounds(100, 100, 450, 328);contentPane = new JPanel();contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));setContentPane(contentPane);contentPane.setLayout(null);JLabel lblFrom = new JLabel("from:");lblFrom.setBounds(10, 10, 54, 22);contentPane.add(lblFrom);JLabel lblTo = new JLabel("To:");lblTo.setBounds(10, 42, 42, 22);contentPane.add(lblTo);JLabel lblSubject = new JLabel("Subject:"); lblSubject.setBounds(10, 74, 54, 22); contentPane.add(lblSubject);txt_From = new JTextField();txt_From.setEditable(false);txt_From.setText("1025674623@");txt_From.setBounds(49, 11, 383, 21); contentPane.add(txt_From);txt_From.setColumns(10);txt_To = new JTextField();txt_To.setText("1025674623@");txt_To.setColumns(10);txt_To.setBounds(49, 42, 383, 21); contentPane.add(txt_To);text_Subject = new JTextField();text_Subject.setText("作业2:邮件客户机"); text_Subject.setColumns(10);text_Subject.setBounds(66, 73, 366, 21); contentPane.add(text_Subject);JLabel lblMassage = new JLabel("Massage:"); lblMassage.setBounds(10, 101, 64, 15); contentPane.add(lblMassage);JButton btnQuit = new JButton("Quit"); btnQuit.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { thisFrame.dispose();}});btnQuit.setBounds(295, 271, 137, 23); contentPane.add(btnQuit);JScrollPane scrollPane = new JScrollPane(); scrollPane.setBounds(10, 229, 422, -101); contentPane.add(scrollPane);Panel panel = new Panel();panel.setBounds(10, 115, 422, 156);contentPane.add(panel);panel.setLayout(null);ScrollPane scrollPane_1 = new ScrollPane();scrollPane_1.setBounds(0, 0, 422, 156);panel.add(scrollPane_1);final TextArea Send_TextArea = new TextArea();Send_TextArea.setText("你好!这是一封测试邮件");Send_TextArea.setBounds(0, 0, 440, 170);scrollPane_1.add(Send_TextArea);JButton btnSend = new JButton("Send");btnSend.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {String txtfrom=txt_From.getText();String txtto=txt_To.getText();String txtsubject=text_Subject.getText();String sendtextarea=Send_TextArea.getText();try {MailMessage message=new MailMessage();message.setFrom(txtfrom);//发件人message.setTo( txtto);//收件人String server="";//邮件服务器message.setSubject(txtsubject);//邮件主题message.setContent(sendtextarea);//邮件内容message.setDatafrom(txtfrom);//发件人,在邮件的发件人栏目中显示message.setDatato(txtto);//收件人,在邮件的收件人栏目中显示message.setUser("1025674623");//登陆邮箱的用户名message.setPassword("zjr*******(保密)");//登陆邮箱的密码SendFrame smtp=new SendFrame(server,25);boolean flag;flag=smtp.sendMail(message,server);if(flag){JOptionPane.showMessageDialog(null, "信息已成功发送!", "提示", RMATION_MESSAGE);}else{JOptionPane.showMessageDialog(null, "邮件发送失败!", "提示", RMATION_MESSAGE);}//System.out.println("iuhfihulaeih ba ");} catch (UnknownHostException e1) {// TODO Auto-generated catch blocke1.printStackTrace();} catch (IOException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}// JOptionPane.showMessageDialog(null, "信息已成功发送!", "提示", RMA TION_MESSAGE);// System.out.println(txtfrom+"\n"+txtto+"\n"+txtsubject+"\n"+sendtextarea);}});btnSend.setBounds(10, 271, 144, 23);contentPane.add(btnSend);JButton btnClear = new JButton("Clear");btnClear.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {txt_To.setText("");text_Subject.setText("");Send_TextArea.setText("");JOptionPane.showMessageDialog(null, "信息删除成功!", "提示", RMA TION_MESSAGE);}});btnClear.setBounds(149, 271, 150, 23);contentPane.add(btnClear);}private boolean debug=true;BASE64Encoder encode=new BASE64Encoder();//用于加密后发送用户名和密码private Socket socket;public SendFrame(String server,int port) throws UnknownHostException, IOException{try{socket=new Socket(server,25);}catch(SocketException e){// System.out.println(e.getMessage());}catch(Exception e){e.printStackTrace();}finally{// System.out.println("已经建立连接!");}}//注册到邮件服务器public void helo(String server,BufferedReader in,BufferedWriter out) throws IOException{ int result;result=getResult(in);//连接上邮件服务后,服务器给出220应答if(result!=220){throw new IOException("连接服务器失败");}result=sendServer("HELO "+server,in,out);//HELO命令成功后返回250if(result!=250){throw new IOException("注册邮件服务器失败!");}}private int sendServer(String str,BufferedReader in,BufferedWriter out) throws IOException{out.write(str);out.newLine();out.flush();if(debug){// System.out.println("已发送命令:"+str);}return getResult(in);}public int getResult(BufferedReader in){String line="";try{line=in.readLine();if(debug){// System.out.println("服务器返回状态:"+line);}}catch(Exception e){e.printStackTrace();}//从服务器返回消息中读出状态码,将其转换成整数返回StringTokenizer st=new StringTokenizer(line," ");return Integer.parseInt(st.nextToken());}public void authLogin(MailMessage message,BufferedReader in,BufferedWriter out) throws IOException{int result;result=sendServer("AUTH LOGIN",in,out);if(result!=334){throw new IOException("用户验证失败!");}result=sendServer(encode.encode(message.getUser().getBytes()),in,out);if(result!=334){throw new IOException("用户名错误!");}result=sendServer(encode.encode(message.getPassword().getBytes()),in,out);if(result!=235){throw new IOException("验证失败!");}}//开始发送消息,邮件源地址public void mailfrom(String source,BufferedReader in,BufferedWriter out) throws IOException{int result;result=sendServer("MAIL FROM:<"+source+">",in,out);if(result!=250){throw new IOException("指定源地址错误");}}// 设置邮件收件人public void rcpt(String touchman,BufferedReader in,BufferedWriter out) throws IOException{int result;result=sendServer("RCPT TO:<"+touchman+">",in,out);if(result!=250){throw new IOException("指定目的地址错误!");}}//邮件体//退出public void quit(BufferedReader in,BufferedWriter out) throws IOException{int result;result=sendServer("QUIT",in,out);}//发送邮件主程序public boolean sendMail(MailMessage message,String server){try{BufferedReader in=new BufferedReader(new InputStreamReader(socket.getInputStream()));BufferedWriter out=new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));helo(server,in,out);//HELO命令authLogin(message,in,out);//AUTH LOGIN命令mailfrom(message.getFrom(),in,out);//MAIL FROMrcpt(message.getTo(),in,out);//RCPTdata(message.getDatafrom(),message.getDatato(),message.getSubject(),message.getContent(),in,o ut);//DATAquit(in,out);//QUIT}catch(Exception e){e.printStackTrace();return false;}return true;}}程序实现与服务器之间建立连接,根据服务器端发送的响应来完成建立连接的过程,然后根据服务器发送回的响应信息,根据相应的模式,发送相应的信息,从而建立起与邮件服务器端的连接以发送邮件。