网络编程socket套接字及其使用(二)

这里给出一个最简单的网络编程入门实例----消息发送机制(基于Visual C++)。

当用户在对话框中输入字符后,回车,则将输入字符显示在应用程序中,步骤如下:

  1. 新建---项目----MFC App---Single document----Windows Scokets---Finish.
  2. 在IDD_ABOUTBOX对话框中添加编辑对话框控件,并为该控件添加CString类型成员变量---m_edit;
  3. Insert----New Class添加Socket类,名称mysock基于CSocket类.
  4. 为mysock类添加消息成员函数OnReceive.
  5. 为该函数添加如下代码:
  6.  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 }

     

  7. 为CAboutDlg类添加消息成员函数OnKillFocus,添加如下代码:
  8.  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 }

     

  9. 为CxxView添加消息成员函数:OnCreate,和OnSetFocus,分别为这两函数添加如下代码:
  10.  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 }

     

  11. 编译运行该实例:

End.

谢谢!

posted on 2019-10-28 09:13  Milo_lu  阅读(136)  评论(0编辑  收藏  举报

导航