Классы CAsyncSocket и CSocket пример простейшего клиента (часть 2)

Продолжим, начатое в статье Классы CAsyncSocket и CSocket теория и пример простейшего сервера (часть 1), теперь возьмемся за простейшего клиента.
Исходник проекта

Клиент.

Как и для сервера, первым делом инициализируем Windows Sockets. В класс наследник диалога добавлен член CCommSocket m_sock (CCommSocket класс наследник CSocket). При нажатии на кнопку "Connect" выполнятся код с теми же минимальными действия для работы сокетов Create и Connect (т.к. теперь нам не надо ждать соединения, мы сами подсоединяемся к серверу) код выглядит следующим образом.

Проверка создан ли сокет, если не создан то создаем.

if( m_sock.m_hSocket == INVALID_SOCKET )
{
bRet = m_sock.Create();
}
если все впорядке, с созданием сокета, соединямся, иначе смотрим что за ошибка.
if( bRet )
{
if( m_sock.Connect( sIP, nPort) )
{
m_bConnected = true;
/*--- все отлично, соеденились ---*/
}
else
{
DWORD dwErr = GetLastError();
}
}
else
{
DWORD dwErr = GetLastError();
}

Передаем данные.
char *pBuff;
if( m_bConnected )
{
pBuff = new char[32];
if( pBuff != NULL )
{
/*--- записываем данные которые нужно передать в pBuff ---*/


/*--- ------------------------------------------------ ---*/
m_sock.Send( pBuff, 32);
delete[] pBuff;
}
}

Вот и все :) Помоему очень просто. Конечно, в демо проекте в клиент добавлен еще код для наглядности происходящего обмена данными и др. мелочи.

Работа системы

Строим приложения. Для этого в меню Visul Studio нажимаем Build-Batch Build, в появившемся окошке, ставим галки для нужной конфигурации (Debug или Realese). Запускаем построенные приложения. В клиенте жмем Connect, после чего заполням поле для данных (на рисунке поле заполнено "22222"), жмем кнопку "Отправить". Получаем приблизительно следующую картину.





Работа сервера состоит в том что к полученным данным он вначале дописывает слово "получено" и отправляет клиенту. Клиент при получении, просто выводит полученные данные в поле. Если закрыть приложение сервер (Listener), клиент сменит состояние с установлено на "разорвано".

Вроде все.
Hosted by uCoz