udp局域网qq聊天程序设计说明书

udp局域网qq聊天程序设计说明书

ID:1357631

大小:76.00 KB

页数:15页

时间:2017-11-10

udp局域网qq聊天程序设计说明书_第1页
udp局域网qq聊天程序设计说明书_第2页
udp局域网qq聊天程序设计说明书_第3页
udp局域网qq聊天程序设计说明书_第4页
udp局域网qq聊天程序设计说明书_第5页
资源描述:

《udp局域网qq聊天程序设计说明书》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、毕业设计(论文)报告用纸第15页共11页3.2类库的设计在本局域网聊天软件中,因为在后台服务器端的用户信息管理平台以及前台的客户端的登录窗口、主界面窗口以及聊天窗口都需要用到UDP协议。所以本程序中,将UDP协议封装成了一个控件,主要是为了便于客户端和服务器端的调用,并且将UDP控件和自定义类存储在了Controls文件夹中。当需要使用到UDP协议的时候,只需要在相应的窗口中加入SockUDP控件,然后设置SockUDP控件的相关的属性即可。下面对Controls中的SockUDP控件和其他的类分别进行说明。(1)SockUDP控件该

2、控件主要是将UDP协议中的IP地址和端口号以及开启或者关闭的状态以控件的形式进行设置,并自定义一个了DataArrival事件,用于对主机的端口号进行监听,以获取远程计算机发送过来的消息。在自定义控件上制作了System.Net.IPEndPoint类的server属性,来获得对方IP地址和端口号信息UDPSocket控件中包含CloseSocket()方法分别用于关闭UDP协议端口的监听功能,并在监听关闭的同时关闭用于接收信息的子线程。Listener()方法用于实现主机端口号的监听功能,主要是将IP地址和端口号以网络端点进行存储,

3、然后创建一个新的端口号,再设置接收缓冲区和发送缓冲区的大小。此外,还创建了一个线程,主要是用于获取当前接收到的信息,就是将获取的远程信息转换成二进制流。在线程打开时,将GetUDPData()方法所接收的信息传递给线程的委托。GetUDPData()方法是在获取远程消息时,将消息转发给UDPSocket控件的DataArrival事件,可以通过该事件将消息发送给远程客户端。Send()方法用于将主机获取的消息,通过IP地址和端口号发送给远程客户端。Dispose()函数用以清理正在使用的资源通过以上的方法,便制作完成了一个SockUD

4、P控件。(2)Publec_Class类该类用于记录服务器端和客户端的基本信息,并通过自定义的方法MyHostIP()获取服务器端的所有IP地址,通过自定义方法Get_Windows()获取Windows目录。(3)ClassForms类该类将获取的的窗体在InnerList列表中进行添加和移除操作,在列表中查找相应的窗体。(4)ClassMsg类毕业设计(论文)报告用纸第15页共11页该类主要是用枚举型的元素指定消息发送的命令、消息类型、消息发送的状态等。其中,发送的消息命令包括了用户登录、用户登录结束上线、用户列表、打开语音、关闭

5、语音、下线等命令;发送的消息类型包括了无类型、发送命令、发送消息、发送文件等。此外,该类还用来记录发送方和接收方的发送编号、IP地址以及端口号等信息,还记录了用户注册的用户名和密码等信息。(6)ClassSerializers类①SerializeBinary()方法该方法是在客户端发送信息时,将发送的对象序列化为二进制流,并返回序列化的二进制流,因为Socket只能以二进制流的形式进行传输。②DeSerializeBinary()方法该方法是在客户端接收信息时,将二进制流反序列化为对象,并返回反序列化后的对象,这样,便于在指定的控件

6、上显示接收的信息。(7)ClassUserInfo类该类用于记录当前用户的编号、IP地址、端口号、用户名称和用户状态。(8)ClassUsers类该类主要是将服务器端所有注册的用户信息存储到base类的InnerList列表中。这样,当用户注册或登陆时,可以将该列表中的信息发给当前在线的所有用户,以改变主窗体的显示情况。ClassTextMsg类该类主要是用枚举型的元素指定发送文本的字体、颜色、内容等。4.2.2客户端登陆模块技术分析在UDP协议的监听事件中通过开启一个线程,来实现局域网信息的发送和接收。要想创建一个子线程,需要实例化

7、一个Thread类型的对象。子线程创建完后,可以使用线程的Start()方法开启当前线程。当子线程使用完之后,可以使用Thread对象的Sleep(0)方法将主线程睡眠,然后调用线程的trd.Abort()方法终止当前线程。4.2.3客户端登陆模块实现过程(1)新建一个Windows窗体,命名为FormLogon.cs。该窗体主要实现客户端的登陆功能。(3)在登陆窗体加载时,获取服务器IP和端口号,再根据该IP地址和端口号与服务器建立通信,把用户的信息发送给服务器进行记录。(4)在自定义控件SocUDP的DataArrival事件中,

8、利用托管调用DataArrival事件,并在该控件的线程上,用指定的参数对其进行异步托管。(5)托管对DataArrival事件进行异步执行,用于获取服务器端所返回的消息,当返回的是登陆成功消息时,存储服务器端返回的ID

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。