• MFCSocketServerSample的头文件


    // MFCSocketServerSample.h : PROJECT_NAME 应用程序的主头文件
    //
    
    #pragma once
    
    #ifndef __AFXWIN_H__
        #error "在包含此文件之前包含“stdafx.h”以生成 PCH 文件"
    #endif
    
    #include "resource.h"        // 主符号
    
    
    // CMFCSocketServerSampleApp: 
    // 有关此类的实现,请参阅 MFCSocketServerSample.cpp
    //
    
    class CMFCSocketServerSampleApp : public CWinApp
    {
    public:
        CMFCSocketServerSampleApp();
    
    // 重写
    public:
        virtual BOOL InitInstance();
    
    // 实现
    
        DECLARE_MESSAGE_MAP()
    };
    
    extern CMFCSocketServerSampleApp theApp;
    // MFCSocketServerSampleDlg.h : 头文件
    //
    
    #pragma once
    #include "SocketServer.h"
    #include "afxwin.h"
    #include "afxcmn.h"
    
    // CMFCSocketServerSampleDlg 对话框
    class CMFCSocketServerSampleDlg : public CDialogEx
    {
    // 构造
    public:
        CMFCSocketServerSampleDlg(CWnd* pParent = NULL);    // 标准构造函数
    
    // 对话框数据
    #ifdef AFX_DESIGN_TIME
        enum { IDD = IDD_MFCSOCKETSERVERSAMPLE_DIALOG };
    #endif
    
        protected:
        virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV 支持
    
    
    // 实现
    protected:
        HICON m_hIcon;
    
        // 生成的消息映射函数
        virtual BOOL OnInitDialog();
        afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
        afx_msg void OnPaint();
        afx_msg HCURSOR OnQueryDragIcon();
        DECLARE_MESSAGE_MAP()
    public:
        afx_msg void OnBnClickedButtonListen();
        CSocketServer* pSocketServer;
    //    CEdit m_Port;
        CString m_Port;
        void WriteLog(CString log);
        CString m_Log;
        afx_msg void OnBnClickedButtonSend();
        CString m_editSend;
        CIPAddressCtrl m_IP;
        afx_msg void OnBnClickedOk();
        afx_msg void OnBnClickedCancel();
        HRESULT OnRecvMsg(WPARAM dwEvent, LPARAM dwLen);
        HRESULT OnLogMsg(WPARAM dwEvent, LPARAM dwLen);
        CString m_editRecv;
    };
    //SocketClient.h
    #pragma once
    #define MAXSOCKBUF    1024
    class CSocketClient:public CAsyncSocket
    {
    public:
        CSocketClient();
        ~CSocketClient();
    public:
        CString m_strIP;
        HWND m_hMsgWnd;
        int m_nLength;
        char m_szReceBuf[MAXSOCKBUF];
        char m_szSendBuf[MAXSOCKBUF];
        bool m_bConnect;
        HWND m_hWnd;
        CString m_strHost;
        void OnSend(int nErrorCode);
        void OnReceive(int nErrorCode);
        void OnConnect(int nErrorCode);
        void Init();
    };
    //SocketServer.h
    #pragma once
    #include "socketclient.h"
    class CSocketServer:public CAsyncSocket
    {
    public:
        CSocketServer();
        ~CSocketServer();
    public:
        //void DeleteRemoteSocket(CSocketClient* pSock);
        //POSITION GetRemoteSocketPos(CSocketClient* pSock);
    //    CSocketClient* GetRemoteSocket(int pSock);
        CPtrList m_clientList;
        HWND m_hMsgWnd;
    //    void OnAccept(int mErrprCpde);
        void OnAccept(int nErrorCode);
        void OnClose(int nErrorCode);
        void DeleteRemoteSocket(CSocketClient* pSock);
    };

    stdafx.h

    // stdafx.h : 标准系统包含文件的包含文件,
    // 或是经常使用但不常更改的
    // 特定于项目的包含文件
    
    #pragma once
    
    #ifndef VC_EXTRALEAN
    #define VC_EXTRALEAN            // 从 Windows 头中排除极少使用的资料
    #endif
    
    
    #include "targetver.h"
    
    #define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS      // 某些 CString 构造函数将是显式的
    
    // 关闭 MFC 对某些常见但经常可放心忽略的警告消息的隐藏
    #define _AFX_ALL_WARNINGS
    #define _CRT_SECURE_NO_WARNINGS
    
    #include <afxwin.h>         // MFC 核心组件和标准组件
    #include <afxext.h>         // MFC 扩展
    
    
    #include <afxdisp.h>        // MFC 自动化类
    #include <afxsock.h>  //new added
    #define WM_SOCKET_LOG WM_USER+202
    #define WM_SOCKET_RECEIVE WM_USER+203
    
    
    
    #ifndef _AFX_NO_OLE_SUPPORT
    #include <afxdtctl.h>           // MFC 对 Internet Explorer 4 公共控件的支持
    #endif
    #ifndef _AFX_NO_AFXCMN_SUPPORT
    #include <afxcmn.h>             // MFC 对 Windows 公共控件的支持
    #endif // _AFX_NO_AFXCMN_SUPPORT
    
    #include <afxcontrolbars.h>     // 功能区和控件条的 MFC 支持
    #include <windows.h>
    
    
    
    
    
    
    
    
    
    #ifdef _UNICODE
    #if defined _M_IX86
    #pragma comment(linker,"/manifestdependency:"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'"")
    #elif defined _M_X64
    #pragma comment(linker,"/manifestdependency:"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'"")
    #else
    #pragma comment(linker,"/manifestdependency:"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'"")
    #endif
    #endif

    targetver.h

    #pragma once
    
    // 包括 SDKDDKVer.h 将定义可用的最高版本的 Windows 平台。
    
    // 如果要为以前的 Windows 平台生成应用程序,请包括 WinSDKVer.h,并将
    // 将 _WIN32_WINNT 宏设置为要支持的平台,然后再包括 SDKDDKVer.h。
    
    #include <SDKDDKVer.h>
  • 相关阅读:
    Java必会之多线程
    第一周JVM核心技术-工具与GC策略
    JVM核心技术(第一篇)
    SpringCloudAlibaba使用seata做分布式事务
    Go中的interface(接口)
    快排与堆排
    优先队列原来不难!带你手写一个
    【LeetCode】557. 反转字符串中的单词 III
    【LeetCode】214. 最短回文串
    【LeetCode】17. 电话号码的字母组合(回溯)
  • 原文地址:https://www.cnblogs.com/txwtech/p/13688590.html
Copyright © 2020-2023  润新知