在登录窗口中,需要完成的功能有:本文来自辣|文,论\文'网,
毕业论文 www.751com.cn 加7位QQ324_9114找源文一是请求连接;二是退出系统的。完成这两个功能的Connect函数、OnOK函数及相应的变量包含在CConnectDlg类中;在CFileOpeDlg类中,定义了文件操作窗口所需调用的各个函数及变量;在CServerSocket类中,定义了客户端向服务器端请求连接和发送数据时所需要的OnReceive函数和相关变量;CClientDlg类是系统自动添加的类,它对应于聊天主窗口。为聊天主窗口进行的各个操作提供方法和变量。
4.2.2客户端具体功能
在登录窗口中,输入昵称和服务器IP地址之后,单击登陆按钮,客户机会调用sprintf(address,"%s",m_IDC_EDIT_ADDRESS.GetBuffer(n))语句,提取出在服务器地址框内输入的IP地址,然后调用myServerSocket->Connect(address,5050)语句,自动向那个输入的IP地址的指定端口发送连接请求。
本系统模拟的是聊天室程序,不限制“游客”出入聊天室,故在登陆时并没有验证登陆者身份是否合法。登陆前输入的昵称,只是为了在聊天时区分发送信息者的身份。
在登陆成功之后,登录窗口会通过CDialog::OnOK()语句调用基类CDialog的OnOK()函数,以关闭当前窗口。
在聊天主窗口中,在消息编辑框输入要发送的内容后,单击发送按钮,系统调用OnButtonSend()函数,将信息发至服务器,然后经由服务器转发至所有在线的客户机。承前所述:昵称只是为了区分发送信息者的身份。在发送信息时,客户机调用OnButtonSend()函数中的m_IDC_EDIT_MESSAGE=myServerSocket->NikeName+": "+m_IDC_EDIT_MESSAGE语句,把昵称和聊天内容连接起来,然后调用sprintf(message,"%s",m_IDC_EDIT_MESSAGE.GetBuffer(n))语句,把整合后的信息加入字符数组message中,接着调用myServerSocket->Send(message,n+1)语句把信息发送出去。其中,myServerSocket是CServerSocket类实例化的对象。
在接受经由服务器转发而来的信息时,客户机使用mServerSocket对象,调用Receive(buff,1000)函数,把信息接收后,再调用m_IDC_LIST_CHATHISTORY_CONTROL.AddString(buff)语句把接收到的信息显示在聊记录框内。
在点击上传按钮之后,系统调用OnUpLoad()函数,用CFileDialog类的实例化对象dlg的DoModal()函数打开文件选择窗口。用户可以浏览本地的所有文件,选择之后便可上传至服务器。在点击下载按钮之后,弹出文件选择窗口,用户可以浏览所有已经上传至服务器的共享文件,选择之后就可以把该文件下载至本地。
本系统中的文件操作,类似于QQ群内文件共享的操作。上传及下载时,无须服务器的同意。它的机制,可以理解为客户机在服务器上进行远程操作。缺点是,这会带来安全隐患。
上一页 [1] [2] [3] [4] [5]
基于WinSocket的局域网聊天工具设计开发 第5页下载如图片无法显示或论文不完整,请联系qq752018766