第一章 编程内容概述
如今,随着云计算、大数据、物联网、互联网+等技术的发展,现在在很多地方都会用到网络编程的技术,尤其是在联网趋势的逐步增强以及网络应用程序的大量出现,所以在实际的开发中网络编程技术获得了大量的使用。
在过去的学习中,大量的知识通过课程实验得到了大大的基础,在学习的过程中,学习到了以套接字、数据报为主的基于网络的通信程序的原理、设计和实现,通过课程的五个实验,大大增强了动手实践能力,同时在软件和通信之间的编程更加熟练,掌握了Windows环境下基于套接字的服务端和客户端设计、基于UDP的服务器端和客户端设计、基于TCP/IP编程以及组播编程的方法和应用,了解Android下同类编程特点,获得了大量的编程知识。
综合实验需要完成文件文件拷贝、Socket通信、UDP通信、通信协议、组播编程5个方面的实验项目,文件拷贝可以实现文件的管理,可以进行拷贝自己想要的文件,文件拷贝可以实现网络的文件拷贝,例如一些文件上传就是运用了文件拷贝多线程输入输出流转换,网络编程套接字那是必不可少的,尤其是TCP协议中的Socket、ServerSocket,还有UDP的DatagramSocket,以及组播中的MulticasSocket,套接字是通信的基础,套接字就是在不同的主机间的进程进行双向相同的端点,构成了整个网络间的编程界面,而通信协议就是主机之间交换信息的协议,可以看作数据交换的规则,我们通过网络通信协议实现信息的交互,利用套接字进行端对端的数据传输。
所以本次这实验目的在同一个项目内编写程序,实现完成文件文件拷贝、Socket通信、UDP通信、通信协议、组播编程5个方面技术点,而在之间的课程实验中,我做了许多关于信息交互的实验项目,就是客户之间的通信,实现聊天的效果,同样这次实验也是一个聊天应用程序项目,利用TCP技术可以完成聊天的需求,编写通信协议类实现群聊和私聊的功能,利用爬虫获取当前城市的实时温度,并利用UDP技术通过JavaFx绘制动态的温度曲线图,组播通信的交互是利用了MulticasSocket套接字,对于组播很多时候可以想到是直播、多媒体信息的发布、网络电视应用等等,组播能够实现将数据有选择性地复制给需要的主机,而不是发送给所有主机,这样可以避免广播风暴的发生。所以对于组播就实现简单的,群发告示功能。最后就是利用多线程实现当地的文件拷贝功能。
第二章 编程环境
2.1 硬件环境
硬件:i5-8300H、8G内存、1TBG硬盘、百兆网
2.2 软件环境
软件:Window 10操作系统、局域网、开发工具Apache NetBeans IDE 11.2
第三章 编程实验过程
3.1文件拷贝
文件拷贝功能,要实现对大文件使用多线程复制,也是会将Fileproject类变成线程Thread的子类,在里面要重写run方法,把文件复制功能的代码放到run里面去以实现线程调用,写一个构造函数,以实现将文件路劲的调换,这样才能有更大的扩展性。多线程的文件拷贝是最重要的需求,大大提高了传输的效率,节约时间。
因为Fileproject没有主方法,无法自启动,要调用Fileproject类,使用图形化界面创建一个窗体JFrame类,实现点击运行,现在进行操作FileJframe类,利用图形化界面对实现功能会更加有效果,同时通过按钮的点击事件,可以获得想要的事件,尤其是在生成最后的文件拷贝,要通过输入输出流查询文件的字节流,最后再转换成字符流输出,在最后添加了一个文件拷贝路劲查看功能。
3.2Socket 通信
Socket通信是整个项目的基础,因为要实现聊天的交互,在控制台交流显然是比较麻烦的,所以需要图形化界面设计客户端的聊天页面,还有需要服务器的查看用户的请求列表,服务器后台可以查看客户发来的消息的情况,并根据协议实现转发到所需要接收的用户页面