Итак, теперь мы попробуем создать сокет и связать его с портом по адресу. Для создания есть функция Create описание ее большое, мы пока воспользуемся ею по умолчанию. Только сокет создан можно воспользоваться функцией Connect():
BOOL Connect( LPCTSTR lpszHostAddress, UINT nHostPort );
Здесь нужно указать имя хостов в виде IP или в виде имени и порт. Создает обычное приложение MFC на базе диалогового окна. Кнопку Connect и код к ней.
void CTestConnectDlg::OnConnect() { WSADATA wsaData; if (!AfxSocketInit(&wsaData)) { AfxMessageBox("Error Unit"); return; } CSocket sa; sa.Create(); if (sa.Connect("169.254.59.172",139)) { AfxMessageBox("Ok connect "); } else AfxMessageBox("Error Connect"); sa.Close(); }
Да кстати именно такое приложение нужно на базе окна, а не просто консольное, в консольном приложении получите ошибку при создании сокета. Итак, пробуем связаться. Пока локально - "Шаг 12 - Тестирование сервера без подключения к инету". Можно использовать и адрес 127.0.0.1 и порт 135. Прежде чем проверять проверьте для начала соединения используя TelNet: "N/A".
А потом можно и на yandex сходить.
if (sa.Connect("pop.yandex.ru",25)) { AfxMessageBox("Ok connect "); } else AfxMessageBox("Error Connect");
Результат:
Можете сравнить насколько это сложнее чем API читайте "Шаг 5 - Поля заголовоков HTTP клиента".