• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Не удается наладить соединение ( Mfc , Csocket )

  • Автор темы DPRO
  • Дата начала
Статус
Закрыто для дальнейших ответов.
D

DPRO

Написал две программы: клиент и сервер. Действуют так: запускаю сервер, жму кнопку Listen - сервер начинает слушать. Затем запускаю клиент, жму кнопку Connect - клиент подключается к серверу.

Теперь проблема: две программы работаю только при 127.0.0.1 ай пи адресе ( это адрес собственного компьютера, получается локалка ) , а при проверке на разных компьютерах ( т.е. другой ай пи, не свой ) соединения не происходит!!! Почему ?!?

Клиентская часть (выделил основное):

void CClientDlg::OnConnect()
{
// TODO: Add your control notification handler code here
//Подсоединяемся к серверу
m_pConnectSocket.Connect("127.0.0.1", 2000);
}

void CClientDlg::OnSend()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE); //Забираем данные из edit'а
m_pConnectSocket.Send(m_sData, m_sData.GetLength()); //Пересылаем
}


и серверая часть ( тоже выделил основное ):

void CServerDlg::OnAccept()
{
//Переводим соединение на передающий сокет
m_pListenSocket.Accept(m_pConnectSocket);
}

void CServerDlg::OnReceive()
{
char *pBuf=new char[1025];
//Записываем полученные данные в pBuf
//Записываем в n количество полученных байтов
int n=m_pConnectSocket.Receive(pBuf, 1024);
//Отсекаем лишние символы
pBuf[n]=NULL;
//Записываем данные в переменную, связанную с edit'ом
m_sData=pBuf;
UpdateData(FALSE);
}

void CServerDlg::OnListen()
{
// TODO: Add your control notification handler code here
m_pListenSocket.Listen(); //Сокет начинает слушать
}

Конешно, это всего лишь небольшие кусочки текста. На функции OnReceive() и OnSend() можно не обращать пока внимание - главное коннект получить! Задачи передать сообщение пока не стоит! Если кода мало, то пишите, могу и проекты скинуть, если надо.
 
H

Hostus

А как выглядит метод Create() создания гнезда с параметрами или без?
 
@

@LE}{@NDER

Еще рекомендую проверить файрвол, не блокируется ли заданный порт - у меня было такое, что написал прогу с использованием сокетов и на некоторых компах не пахала, пока не отключал файрволы.
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!