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


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


Здесь необходимо создать сервер и запустить прослушивание порта (ожидание соединений клиентов). В первой строке инициализируется переменная m_sSocket. Она имеет тип класса CServerSocket, поэтому в качестве параметра надо передать конструктору указатель на текущий класс. Это делается с помощью ключевого слова this.

После этого вызывается метод Create, у которого в качестве единственного параметра необходимо указать номер порта, на котором будет работать сервер. Теперь можно запускать прослушивание с помощью метода Listen.

Сервер запущен, и через компонент Static Text в окне диалога выводится соответствующее сообщение.

В обработчике события для кнопки Connect To Server надо написать следующий код:

void CMFCSendTextDlg::OnBnClickedButton2() { // ТОDО: Add your control notification handler code here m_cSocket = new CClientSocket(this); m_cSocket->Create(); if (m_cSocket->Connect("127.0.0.1", 22345)) m_SendButton. EnableWindow( TRUE); }

В первой строке инициализируется переменная m_cSocket. Следующей строкой кода создается класс. Теперь можно соединяться с сервером. Для этого используется метод Connect. Существует несколько реализаций данного метода, и они отличаются количеством и типом передаваемых параметров. В нашем случае используются следующие параметры:

  • IP-адрес в виде строки;
  • порт, на который необходимо подключиться.

Если соединение прошло успешно, то метод вернет ненулевое значение. Проверяется результат, и если все нормально, то кнопка Send Data делается доступной.

Отправка данных происходит, когда пользователь нажимает кнопку Send Data. Код, который должен находиться в обработчике события, выглядит следующим образом:

void CMFCSendTextDlg::0nBnClickedButton3() { // TODO: Add your control notification handler code here m_cSocket->Send("Hello", 100);

int err=m_cSocket->GetLastError(); if(err>0) { CString ErrStr; ErrStr.Format("errcode=%d",err); AfxMessageBox ( ErrStr ); } }

Отправка данных происходит с помощью метода Send объекта-клиента m_cSocket. У него два параметра:




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



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