该程序实现的功能:
1.程序能够找到局域网内运行同样程序的所有主机,并将主机名和主机IP列出。
2.本机程序能够对其他主机进行文本信息的单发和群发。
3.本机程序能够实现对其他主机文件的单发
功能1实现过程:
// 接收广播消息,并将本机主机名和IP发还过去
在初始化主窗口界面时,启动一个线程,在该线程内创建一个UDP套接字,将其设为广播类型,这样该套接字就能接发广播信息。
当该套接字接收到一条广播广播消息,并且该消息是要获取主机名和IP地址的命令后,就将本机的主机名和IP地址发还过去。
//主动发送广播消息以获取局域网运行同样程序的主机名和IP地址
在主窗口上添加一个按钮"刷新",给该按钮添加一个点击事件,当点击该按钮时,就启动一个线程。
在该线程内创建一个UDP套接字,将其设为广播类型,然后该套接字发送一条广播消息"GetIPAddr",如果别的主机接受到了该消息就将自己的主机名和IP发还过来。
发送完广播消息后,就是通过一个while循环来接受别的主机发过来的主机名和IP地址,并将信息显示到主窗口上。然后让该线程在100ms后结束,这样做的目的就是为了让获取了其他主机名和IP地址后,释放掉线程中的资源。(不过根据实际结果来看好像并不能真正释放掉该线程占用的资源,不过并不影响程序功能)
功能2实现过程(收发文本信息采用的是UDP,收发文件采用的是TCP):