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() можно не обращать пока внимание - главное коннект получить! Задачи передать сообщение пока не стоит! Если кода мало, то пишите, могу и проекты скинуть, если надо.
Теперь проблема: две программы работаю только при 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() можно не обращать пока внимание - главное коннект получить! Задачи передать сообщение пока не стоит! Если кода мало, то пишите, могу и проекты скинуть, если надо.