資源簡介
MFC實現簡單的tcp連接通信程序 基于Socket類

代碼片段和文件信息
//?Socket_ConnectDlg.cpp?:?實現文件
//
#include?“stdafx.h“
#include?“Socket_Connect.h“
#include?“Socket_ConnectDlg.h“
#include?“afxdialogex.h“
#ifdef?_DEBUG
#define?new?DEBUG_NEW
#endif
//?用于應用程序“關于”菜單項的?CAboutDlg?對話框
class?CAboutDlg?:?public?CDialogEx
{
public:
CAboutDlg();
//?對話框數據
enum?{?IDD?=?IDD_ABOUTBOX?};
protected:
virtual?void?DoDataExchange(CDataExchange*?pDX);????//?DDX/DDV?支持
//?實現
protected:
DECLARE_MESSAGE_MAP()
};
CAboutDlg::CAboutDlg()?:?CDialogEx(CAboutDlg::IDD)
{
}
void?CAboutDlg::DoDataExchange(CDataExchange*?pDX)
{
CDialogEx::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(CAboutDlg?CDialogEx)
END_MESSAGE_MAP()
//?CSocket_ConnectDlg?對話框
CSocket_ConnectDlg::CSocket_ConnectDlg(CWnd*?pParent?/*=NULL*/)
:?CDialogEx(CSocket_ConnectDlg::IDD?pParent)
{
m_hIcon?=?AfxGetApp()->LoadIcon(IDR_MAINframe);
}
void?CSocket_ConnectDlg::DoDataExchange(CDataExchange*?pDX)
{
CDialogEx::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(CSocket_ConnectDlg?CDialogEx)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_BN_CLICKED(IDC_BUTTON1?&CSocket_ConnectDlg::onclickedButton1)
ON_BN_CLICKED(IDC_BUTTON2?&CSocket_ConnectDlg::onclickedButton2)
ON_MESSAGE(WM_SOCKET&CSocket_ConnectDlg::OnSocket)
END_MESSAGE_MAP()
//?CSocket_ConnectDlg?消息處理程序
BOOL?CSocket_ConnectDlg::OnInitDialog()
{
CDialogEx::OnInitDialog();
//?將“關于...”菜單項添加到系統菜單中。
//?IDM_ABOUTBOX?必須在系統命令范圍內。
ASSERT((IDM_ABOUTBOX?&?0xFFF0)?==?IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX?0xF000);
CMenu*?pSysMenu?=?GetSystemMenu(FALSE);
if?(pSysMenu?!=?NULL)
{
BOOL?bNameValid;
CString?strAboutMenu;
bNameValid?=?strAboutMenu.LoadString(IDS_ABOUTBOX);
ASSERT(bNameValid);
if?(!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING?IDM_ABOUTBOX?strAboutMenu);
}
}
//?設置此對話框的圖標。當應用程序主窗口不是對話框時,框架將自動
//??執行此操作
SetIcon(m_hIcon?TRUE); //?設置大圖標
SetIcon(m_hIcon?FALSE); //?設置小圖標
//?TODO:?在此添加額外的初始化代碼
this->GetDlgItem(IDC_EDIT3)->EnableWindow(FALSE);
this->GetDlgItem(IDC_EDIT4)->EnableWindow(FALSE);
this->GetDlgItem(IDC_BUTTON2)->EnableWindow(FALSE);
s=::socket(AF_INETSOCK_STREAM0);???//創建套接字
::WSAAsyncSelect(sthis->m_hWndWM_SOCKETFD_READ);//將套接字設置為異步模式
return?TRUE;??//?除非將焦點設置到控件,否則返回?TRUE
}
void?CSocket_ConnectDlg::OnSysCommand(UINT?nID?LPARAM?lParam)
{
if?((nID?&?0xFFF0)?==?IDM_ABOUTBOX)
{
CAboutDlg?dlgAbout;
dlgAbout.DoModal();
}
else
{
CDialogEx::OnSysCommand(nID?lParam);
}
}
//?如果向對話框添加最小化按鈕,則需要下面的代碼
//??來繪制該圖標。對于使用文檔/視圖模型的?MFC?應用程序,
//??這將由框架自動完成。
void?CSocket_ConnectDlg::OnPaint()
{
if?(IsIconic())
{
CPaintDC?dc(this);?//?用于繪制的設備上下文
SendMessage(WM_ICONERASEBKGND?reinterpret_cast(dc.GetSafeHdc())?0);
//?使圖標在工作區矩形中居中
int?cxIcon?=?GetSystemMetrics(SM_CXICON);
int?cyIcon?=?GetSystemMetrics(SM_CYICON);
CRect?rect;
G
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????5753??2017-06-12?13:47??Socket_ConnectDlg.cpp
?????文件?????????803??2017-06-12?13:47??Socket_ConnectDlg.h
?????文件????????5206??2017-06-13?11:20??Socket_Connect_ServerDlg.cpp
?????文件?????????873??2017-06-12?16:03??Socket_Connect_ServerDlg.h
- 上一篇:c++與STK開發
- 下一篇:非常好用的C語言線程池,自己測試通過
評論
共有 條評論