这里给出一个最简单的网络编程入门实例----消息发送机制(基于Visual C++)。
当用户在对话框中输入字符后,回车,则将输入字符显示在应用程序中,步骤如下:
- 新建---项目----MFC App---Single document----Windows Scokets---Finish.
- 在IDD_ABOUTBOX对话框中添加编辑对话框控件,并为该控件添加CString类型成员变量---m_edit;
- Insert----New Class添加Socket类,名称mysock基于CSocket类.
- 为mysock类添加消息成员函数OnReceive.
- 为该函数添加如下代码:
-
1 ///////////////////////////////////////////////////////////////////////////// 2 // mysock member functions 3 char aa[100]; 4 CString mm; 5 CDC* pdc; 6 void mysock::OnReceive(int nErrorCode) 7 { 8 static unsigned int Line=0; 9 // TODO: Add your specialized code here and/or call the base class 10 CSocket::Receive((void*)aa,100,0); 11 mm=aa; 12 pdc->TextOut(0,Line,mm); 13 Line+=20; 14 CSocket::OnReceive(nErrorCode); 15 }
- 为CAboutDlg类添加消息成员函数OnKillFocus,添加如下代码:
-
1 ///////////////////////////////////////////////////////////////////////////// 2 // CQQApp message handlers 3 4 extern CString bb; 5 void CAboutDlg::OnKillFocus(CWnd* pNewWnd) 6 { 7 CDialog::OnKillFocus(pNewWnd); 8 9 // TODO: Add your message handler code here 10 bb=m_edit; 11 }
- 为CxxView添加消息成员函数:OnCreate,和OnSetFocus,分别为这两函数添加如下代码:
-
1 ///////////////////////////////////////////////////////////////////////////// 2 // CQQView message handlers 3 extern CDC* pdc; 4 mysock sock1; 5 CString bb; 6 int CQQView::OnCreate(LPCREATESTRUCT lpCreateStruct) 7 { 8 if (CView::OnCreate(lpCreateStruct) == -1) 9 return -1; 10 11 // TODO: Add your specialized creation code here 12 sock1.Create(5050,SOCK_DGRAM,NULL); 13 static CClientDC wdc(this); 14 pdc=&wdc; 15 return 0; 16 } 17 18 void CQQView::OnSetFocus(CWnd* pOldWnd) 19 { 20 CView::OnSetFocus(pOldWnd); 21 22 // TODO: Add your message handler code here 23 bb="milo:"+bb; 24 sock1.SendTo(bb,100,5050,"192.168.222.111",0);//IPv4 Address 25 }
- 编译运行该实例:
End.
谢谢!