Программирование на C++ глазами хакера


Передача данных по сети с помощью CSocket - часть 4


m_Dlg->m_SendButton.EnableWindow(FALSE);

Сейчас перейдем к рассмотрению главного модуля программы — MFCSendTextDlg. Начнем разбор с заголовочного файла (листинг 4.10).

Листинг 4.10. Заголовочный файл MFCSendTextDlg.h

// MFCSendTextDlg.h : header file

#pragma once #include "afxwin.h"

class CServerSocket; class CClientSocket;

class CMFCSendTextDlg : public CDialog { // Construction (Коструктор) public: // standard constructor // (стандартный конструктор) CMFCSendTextDlg(CWnd* pParent = NULL);

// Dialog Data (Данные диалога) enum { IDD = IDD_MFCSENDTEXT_DIALOG };

protected: // DDX/DDV support (Поддержка обмена данными) virtual void DoDataExchange(CDataExchange* pDX);

// Implementation protected: HICON m_hIcon; CServerSocket* m_sSocket; CClientSocket* m_cSocket; CClientSocket* m_scSocket;

// Generated message map functions // (Сгенерированные функции карты сообщений) 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 OnBnClickedButton1(); afx_msg void OnBnClickedButton2(); afx_msg void OnBnClickedButton3(); CButton m_SendButton; afx_msg void OnBnClickedButton4(); void AddConnection(); };

Здесь введены три переменные в разделе protected:

  • m_sSocket — указатель на класс CServerSocket;
  • m_cSocket и m_scSocket — указатели на класс CClientSocket.

А в разделе public добавлен один метод void AddConnection().

Теперь создайте поочередно обработчики события для всех кнопок диалогового окна. Для этого необходимо щелкнуть на кнопке правой кнопкой мышки и в появившемся меню выбрать пункт Add Event Handler. Давайте рассмотрим каждый обработчик события в отдельности.

Для кнопки Create Server будет следующий обработчик:

void CMFCSendTextDlg::OnBnClickedButton1() { // TODO: Add your control notification handler code here m_sSocket=new CServerSocket(this); m_sSocket->Create(22345); m_sSocket->Listen(); SetDlgItemText(IDC_STATIC, "Server started"); }




Начало  Назад  Вперед



Книжный магазин