基于udp网络通信系统的服务端程序设计课程设计报告(编辑修改稿)内容摘要:

t != null) ()。 //关闭连接 } } catch (IOException e) { // TODO Autogenerated catch block ()。 } } 网络协议编程课程设计 第 14 页 共 31 页 } 运行程序 运行程序,要结合 服务器端程序 ,运行服务器端程序,结果如图 12。 图 12 服务器程序运行结果 运行客户端程序,得出客户端如图 13。 图 13 客户端程序运行结果 客户端对话框输入所要连接的服务器的 IP 地址,进行客户端和服务 器端的连接,连接后,出现如图 14 结果。 图 14 服务器和客户端连接 接下来,客户端和服务器端进行连接后,可以进行正常的聊天了。 其程序执行结果如图 15 所示。 网络协议编程课程设计 第 15 页 共 31 页 图 15 服务器和客户端之间的 聊天 通讯 接下来是在客户端下载服务器上的文件。 图 16 请求在客户端上下载服务器上的文件 图 17 在客户端登陆上服务器 图 18 在客户端成功下载 服务器上的文件 网络协议编程课程设计 第 16 页 共 31 页 4 结束语 经过两个星期的学习和实践,我也算是顺利的完成了 这次 课程设计,在实践过程中遇到了很多的困难,感觉自己很难将理论与实践相结合,觉得我们学习的那些知识也派不上用场,通过这次课设,我深刻的认识到实践与理论必须要想结合才 能使所学的知识变成可用的,通过自己的努力和老师同学们的帮助, 多了一种看待问题的角度;我也发现了我所学知识 不扎实 , 只是走马观花的应付考试,在以后的学习中需要时刻的告诫自己,踏踏实实做好每一步。 本次课程设计是利用 java 语言编写的,虽说自己以前接触过这种语言,但是经过这两周的学习,我受益匪浅。 首先,我进一步弄懂了 JAVA 语言的编程方法和原则,并学会了编写 java 程序。 其次,使我更深层次的理解到 JAVA 语言是一种面向对象的语言,具有可视化编程的特点且代码具有可移植等特点。 本次课程设计是实现一个 UDP 即时通讯程序。 经过编写程序和运行,调试程序,我对java 语言有了更深的了解。 另外,使我对 UDP 协议的特点和工作过程有了更深的了解。 UDP 协议提供无连接的、不可靠的服务。 它工作于传输层,是传输层的重要协议之一。 最后, UDP 协议是利用客户端和服务器端模型来实现传输的。 本次课程设计使我明白了知识的重要性,同时也更加懂得实践更不可少。 我们要经常把所学的知识运用到实践,这样,才能充分的融会贯通。 同时,也使我认识到自己动手能力太差,为我以后的学习和发展提供了一个警钟。 本次课程设计的过程中,虽然遇到了不少问题,但最后还是成功的完成 了。 这次课设对于我而言是有很大的收获,懂得独立寻找资料学习,这是最大的收获,在以后的工作中肯定会面临不懂得问题,有了这次课设的经验,就能够去独立学习并解决困难。 网络协议编程课程设计 第 17 页 共 31 页 参考文献 [1] .潘爱民.计算机网络(第四版).清华大学出版社, 2020 [2]孙卫琴. JAVA 面向对象编程.电子工业出版社 , 2020 [3] 张立 等 . 基于 Client/Server 模式的数据库应用软件的设计与实现 . 计算机应用研究 [J], 1999 [4] 俞俊 / 李功 / 汪晓平 . Java 网络 编程.清华大学出版社, 2020 [5] 谢希仁 . 计算机网络(第四版) [M]. 电子工业出版社, 2020 网络协议编程课程设计 第 18 页 共 31 页 附录 1: 聊天模块 客户端程序设计清单 package。 import。 import。 import。 import。 import。 import。 public class Client { public static void main(String[] args) { new UDPClient().start()。 //调用 UDPClient()函数 ,启动客户端 }} class UDPClient extends Thread { public UDPClient() { } public void run() { //和服务器之间进行连接 (请输入所要通讯的服务器的地址: )。 String serverip = null。 //定义一个数组 ,用来保存服务器地址 ,初始化为 NULL. //进行异常处理 try { serverip = new BufferedReader(new InputStreamReader()).readLine()。 //取得输入的服务器地址 } catch (IOException e1) { //错误处理 ()。 }finally{ try { 网络协议编程课程设计 第 19 页 共 31 页 DatagramSocket socket = new DatagramSocket()。 //建立 Socket连接 //实现服务器和客户端程序间的不间断通讯 while (true) { // 发送 (客户端发送的 消息为: )。 //打印消息 String send = new BufferedReader(new InputStreamReader()).readLine()。 //读入客户机输入的消息 byte[] outstr = new byte[()]。 //定义一个字节数组 ,长度为客户端所发送的消息长度 outstr = ()。 //将得到的客户端消息保存数组中 IAddress address = (serverip)。 DatagramPacket packet = new DatagramPacket(outstr, , address, 80)。 //向服务器发送数据报 (packet)。 //发送数据报 // 接收 byte[] instr = new byte[200]。 //定义数组 ,用来保存接受的数据 报 packet = new DatagramPacket(instr, )。 //接收数据报 (packet)。 //接收数据 String out = new String((),0,())。 //取出信息 (接受到的服务器消息: + out)。 //打印服务器发过来的信息 } } catch (Exception e) { // 错误处理 ()。 } }} } 网络协议编程课程设计 第 20 页 共 31 页 附录 2: 聊天模块 服务器程序设计清单 package。 import。 import。 import。 import。 import。 public class Server { public static void main(String[] args) { new UDPServer().start()。 //启动服务器 } } class UDPServer extends Thread { public UDPServer() { } //缺省构造函数 public void run() { try { DatagramSocket socket = new DatagramSocket(80)。 //建立一个 Socket连接 ,端口号为 80 (服务器 IP地址为: + ().getHostAddress())。 //得到服务器地址 ,并打印出来 //实现客户端和服务器端的连续通信 while (true) { // 接收 byte[] instr = new byte[200]。 //定义数组 ,用来保存客户端发送来的数据 DatagramPacket receive = new DatagramPacket(instr, )。 (receive)。 //接收客户机发过来的数据 String str = new String(())。 //提取数据 (客户端消息: + ())。 //打印客户机消息 // 发送 网络协议编程课程设计 第 21 页 共 31 页 (接收到的服务器消息: )。 //打印消息 str = new BufferedReader(new InputStreamReader()).readLine()。 //得到输入的数据 byte[] outstr = new byte[()]。 outstr = ()。 DatagramPacket send = new DatagramPacket(outstr, (), ())。 //向客户机发送数据 (send)。 //执行发送 } } catch (Exception e) { //错误处理 ()。 } } }。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。