基于udp协议的聊天工具的设计_研究生课程论文(编辑修改稿)内容摘要:

//将接收到的数据传递给对话框。 ::PostMessage(hwnd,WM_RECVDATA,0,(LPARAM)tempBuf)。 } return 0。 } 对接收到的消息进行处理,使得能够按照一定格式输出。 对于接收数据框来说 ,接收到的最新数据应该放到最顶端,以前的数据应该依次往下排列。 void CChatDlg::OnRecvData(WPARAM wParam,LPARAM lParam) { CString str=(char*)lParam。 //把 lParam转换成字符型指针,然后赋给 str。 CString strTemp。 //接收旧的数据。 GetDlgItemText(IDC_EDIT_RECV,strTemp)。 //从控件中得到文本。 str+=\r\n。 //让新的数据加 1个换行。 str+=strTemp。 //再下一行加入 先前的数据。 SetDlgItemText(IDC_EDIT_RECV,str)。 //将数据放回接收的编辑框。 } 发送函数 void CChatDlg::OnBtnSend() 12 { // TODO: Add your control notification handler code here DWORD dwIP。 //定义 DWORD类型变量,用来接收控件的 IP地址。 ((CIPAddressCtrl*)GetDlgItem(IDC_IPADDRESS1))GetAddress(dwIP)。 //通过 GetDlgItem,得到控件的 CWnd指针,再转换类型,得到 dwIP。 SOCKADDR_IN addrTo。 //定义地址结构体变量。 =AF_INET。 =htonl(dwIP)。 =htons(5000)。 CString strSend。 GetDlgItemText(IDC_EDIT_SEND,strSend)。 /*得到编辑框的文本,传递给 strSend。 */ sendto(m_socket,strSend,()+1,0, (SOCKADDR*)amp。 addrTo,sizeof(SOCKADDR))。 //发送数据。 SetDlgItemText(IDC_EDIT_SEND,)。 /*发送完后将编辑文本框设置为空。 */ } 13 附录 在 ChatApp 类中的 IniInstance(void)函数中添加一段代码: if(!AfxSocketInit()) { AfxMessageBox(加载套接字库失败。 )。 return FALSE。 } else { AfxMessageBox(加载套接字库成功。 )。 } 以下是 中实现的代码: // : implementation file // include include include ifdef _DEBUG define new DEBUG_NEW undef THIS_FILE static char THIS_FILE[] = __FILE__。 endif ///////////////////////////////////////////////////////////////////////////// // CAboutDlg dialog used for App About class CAboutDlg : public CDialog { public: CAboutDlg()。 // Dialog Data //{{AFX_DATA(CAboutDlg) enum { IDD = IDD_ABOUTBOX }。 //}}AFX_DATA // ClassWizard generated virtual function overrides 14 //{{AFX_VIRTUAL(CAboutDlg) protected: virtual void DoDataExchange(CDataExchange* pDX)。 // DDX/DDV support //}}AFX_VIRTUAL // Implementation protected: //{{AFX_MSG(CAboutDlg) //}}AFX_MSG DECLARE_MESSAGE_MAP() }。 CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD) { //{{AFX_DATA_INIT(CAboutDlg) //}}AFX_DATA_INIT } void CAboutDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX)。 //{{AFX_DATA_MAP(CAboutDlg) //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CAboutDlg, CDialog) //{{AFX_MSG_MAP(CAboutDlg) // No message handlers //}}AFX_MSG_MAP END_MESSAGE_MAP() /////////////。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。