一、MFC网络编程
a)CAsyncSocket用于异步非阻塞类,用UDP通信;
b)CAsyncSocket的子类(派生类);Csocket同步阻塞类,用于TCP通信;
c)通信前,必须调用AfxSocketInit()进行初始化
二、CAsyncSocket类UDP通信
2.1 服务器端通信步骤:
a)在.h文件中创建CAsyncSocket类对象;
b)创建套接字CAsyncSocket::Create();
c)发送数据CAsyncSocket::SentTo();
d)关闭套接字CAsyncSocket::Close();
2.2 MFC界面
2.3 代码实例:
a)01_UDPServerDlg.h中添加CAsyncSocket对象
1 // 01_UDPServerDlg.h : 头文件 2 // 3 4 #pragma once 5 #include "afxcmn.h" 6 #include "afxwin.h" 7 8 9 // CMy01_UDPServerDlg 对话框 10 class CMy01_UDPServerDlg : public CDialogEx 11 { 12 // 构造 13 public: 14 CMy01_UDPServerDlg(CWnd* pParent = NULL); // 标准构造函数 15 16 // 对话框数据 17 enum { IDD = IDD_MY01_UDPSERVER_DIALOG }; 18 19 protected: 20 virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持 21 22 23 // 实现 24 protected: 25 HICON m_hIcon; 26 27 // 生成的消息映射函数 28 virtual BOOL OnInitDialog(); 29 afx_msg void OnSysCommand(UINT nID, LPARAM lParam); 30 afx_msg void OnPaint(); 31 afx_msg HCURSOR OnQueryDragIcon(); 32 DECLARE_MESSAGE_MAP() 33 private: 34 //自定义添加代码,MFC界面对应控件变量 35 UINT peerPort; 36 UINT localPort; 37 CIPAddressCtrl addrCtrl; 38 CString sendBuf; 39 int sendLen; 40 CButton startButton; 41 CButton stopButton; 42 43 //套接字对象 44 CAsyncSocket socket; 45 public: 46 afx_msg void OnBnClickedButton1(); 47 afx_msg void OnTimer(UINT_PTR nIDEvent); 48 afx_msg void OnBnClickedButton2(); 49 };