欢迎来到天天文库
浏览记录
ID:57099023
大小:109.50 KB
页数:10页
时间:2020-08-02
《实验2:Socket通信编程.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、《网络与通信》课程实验报告实验2:Socket通信编程姓名院系计算机学院学号任课教师钱权指导教师钱权实验地点计算机楼706机房实验时间2016年9月13日实验课表现出勤、表现得分(10)实验报告得分(40)实验总分操作结果得分(50)实验目的:1.掌握Socket编程过程;2.编写简单的网络应用程序。实验内容:利用你选择的任何一个编程语言,分别基于TCP和UDP编写一个简单的Client/Server网络应用程序。具体程序要求参见《实验指导书》。要求以附件形式给出:l系统概述:运行环境、编译、使用方法、实现环境、程序文件列表等;l主要数据结构;l主要算法描述;l用户使用手册;
2、l程序源代码;实验要求:(学生对预习要求的回答)(10分)得分:lSocket编程客户端的主要步骤1)搜寻是否有服务端,无论是否收到都返回相关的一个消息。2)获得服务器端的IO流3)用处理流封装后与客户端交互,原则4)关闭IO流,socket。lSocket编程服务器端的主要步骤1)打开服务器端,等待客户端的连接2)如果连接成功返回一个消息,不成功则返回失败的消息3)获得服务器端的IO流4)用处理流封装后与客户端交互,5)关闭客户端,关闭服务器。实验过程中遇到的问题如何解决的?(10分)得分:问题1:怎样制作界面?因为我使用的是java语言,所以我采用了java的GUI程序里
3、面的JFrame来构造窗体,界面和控件。问题2:服务器端程序如何根据收到的信息选择转发的目的地?答:服务器在收到信息后,根据特殊字符的前面加上目的地用户名用特殊字符将信息实体分开,获得目的地用户名。然后在记录所有用户信息的数组中,匹配该用户名,找到返回该用户的套接字指针,服务器根据该指针转发信息,若找不到,出现错误,返回错误标识。问题3:整个Socket编程中遇到的许多异常怎么处理?实验中碰到了很多异常,是与Socket资源释放有关的,比如说我给的一个客户端线程,但改客户端关闭掉了,而我并没有在容器中进行remove该线程操作,那么由于该客户端线程继续在工作,所以会报java
4、.net.SocketException错误,server无法msg=in.readUTF();无法读取到输入流的信息。解决方法其实也就是将该关闭的线程做remove操作。我可以加一个判断客户端线程是否已死的线程,如果死了,就remove掉。本次实验的体会(结论)(10分)得分:本次实验感觉较难,但是真正上手后觉得一旦做出一些东西,就有动力去继续往下做,由于最近比较青睐java的原因,所以选择了java来编写这个程序,在充分的学习后终于让客户端和服务端能够通信,但是想做出一个界面,所以又自学了JFrame方面的内容,搞出来一个界面。思考题:(10分)思考题1:(4分)得分:你
5、所用的编程语言在Socket通信中用到的主要类及其主要作用。1、DataInputStream;:数据输入流允许应用程序以与机器无关方式从底层输入流中读取基本Java数据类型。应用程序可以使用数据输出流写入稍后由数据输入流读取的数据。DataOutputStream;:数据输出流允许应用程序以适当方式将基本Java数据类型写入输出流中。然后,应用程序可以使用数据输入流将数据读入2、socket类:用于服务器端程序和客户端程序,实现双方的数据通信。思考题2:(6分)得分:说明TCP和UDP编程的主要差异和特点。(1)TCP(TransmissionControlProtocol
6、,传输控制协议)UDP(UserDataProtocol,用户数据报协议)(2)最主要区别-传输可靠性,TCP可靠而UDP不可靠。真正交由网路传送的IP封包是有一定的体积限制的(IP封包的最大体积为65536bytes)。由于UDP不需要可靠传输,因此相较于TCP来说,一大堆必需占据封包表头的overhead都可省略,从而换取更大的payroll空间。这样的结果,将令到单一的IP封包在作UDP连线时所携载的资料要比TCP连线多更多。这是靠牺牲可靠性而换取得来的(3)TCP提供的是一个连线导向(ConnectionOriented)的可靠传输﹐而UDP则是一个非连线型(Conn
7、ectionless)的非可靠传输。(4)应用场合,对于某些讯息量较大、时效性大于可靠性的传输来说(比方说语音/影像),UDP的确是个不错的选择。(5)从速度上说,UDP比TCP快,UDP不需要运用确认机制来保证资料是否正确的被接收、不需要重传遗失的资料、资料的接收可不必按顺序进行、也不提供回传机制来控制资料流的速度。指导教师评语:日期:附件1:1.运行环境:win7,win8,win10等操作系统。2.编译:通过Eclipse编译,无任何错误警告。3.实现环境:Eclipse附件2:使用方法:1.打开
此文档下载收益归作者所有