毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 计算机论文 >> 正文

基于WinSocket的局域网聊天工具设计开发 第4页

更新时间:2016-9-6:  来源:毕业论文
4.详细设计
4.1服务器端功能
4.1.1服务器端类
在服务器端,需要添加三个类:CListenSocket、CClientSocket、ClistenSocketList。其中,前二者的基类为CSocket。
在响应客户端的连接请求之前,服务器端必须持续地在指定端口上侦听是否有连接请求。为此,创建了ClistenSocket类。此类提供Listen函数用以侦听,OnAccept函数则是为了接受客户机的连接请求。
在系统运行过程中,服务器与客户机之间的信息交流是非常重要的一步,对服务器而言,无论是接收来自客户端的信息,还是向客户端转发信息,都必须通过套接字来完成,创建CClientSocket类正是为了完成这一步,它提供了OnReceive函数用来接收消息。
服务器向客户机转发信息是本系统非常重要的一个功能。要实现这个功能,首先要了解所有在线客户端,CClientSocketList类的主要功能之一为了记录在线客户端的信息。
4.1.2服务器端具体功能
在客户进行聊天之前,服务器必须搭建成功;因为它是各个客户端进行交流的枢纽,是信息的中转站。要完成服务器的搭建,只需点击开始侦听即可,系统将调用ListenSocket对象的Creat(port)语句为侦听套接字创建端口,而后利用Listen()函数开始侦听。至此,服务器创建成功。本论文指定的侦听端口为5050。
在被创建成功之后,服务器调用SetDlgItemText(IDC_EDIT_STATION,"正在侦听")语句,把编辑框里面的文字设置为“正在侦听”,用以显示当前的服务器状态。
在接收到某一客户机发送的信息之后,服务器需要向其他保持连接的客户机转发此信息。完成这一步,需要做到两点:一是文护保持连接的客户机链表;二是向这些客户机转发信息。在响应某一客户连接后,服务器自动调用Add(CClientSoket *add)函数,用以在记录当前在线客户端的链表中添加新成员的信息,在添加新成员信息后,系统调用AfxMessageBox("新的客户机信息已添加至客户机链表!")语句提醒用户;服务器转发信息时,会调用Sends(CClientSocket *tmp)函数。执行Sends函数的过程是这样的:从CClientSocketList链表中逐一读取保存的CClientSocket类的对象信息。在读取某一对象后,会通过调用该对象的Receive()函数从上一个CClientSocket类的对象中接收信息,然后通过Send()函数接收到的把信息从本套接字上转发出去。通过Add(CClientSocket *add)和Sends(CClientSocket *tmp),服务器得以完成转发信息的功能。
为了避免用户重复点击某一按钮带来的问题,系统调用按钮控件的EnableWindow(FALSE)函数,使其在被点击之后失效。
4.2客户端功能
4.2.1客户端类
客户端需要三个窗口:登录窗口、聊天主窗口、文件操作窗口。并且还需要实现这三个窗口之间的切换:登录窗口切换至聊天主窗口、聊天主窗口引出文件操作窗口。其中,每个窗口对应一个类。它们的对应关系是:登录窗口对应CConnectDlg类;聊天主窗口对应CClientDlg 类;文件操作窗口对应CFileOpeDlg类。客户端与服务器之间的连接及数据的传输,需要CServerSocket类定义的对象来完成。

上一页  [1] [2] [3] [4] [5] 下一页

基于WinSocket的局域网聊天工具设计开发 第4页下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©751com.cn 辣文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。