Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > Сокеты. Клиент и сервер в одном приложении.


Автор: drazah 20.11.2010, 23:49
Опишу как есть. Собственно имеется клас CMySocket, наследник CAsyncSocket. Переопределены методы OnAccept, OnReceive.
Код

void CMySocket::OnAccept(int nErrorCode) 
{
    AfxMessageBox("Соединение");
//код...
}

void CMySocket::OnReceive(int nErrorCode) 
{
    AfxMessageBox("Данные получены");
//код...
}


Создаю проект "Сервер", в котором два сокета - слушающий и передающий. 
По нажатию кнопки начинаю слушать порт.
Код

ListenSocket.Create(2000);
ListenSocket.Listen();


Создаю проект "Клиент", в котором создаю сокет ConnectSocket  и по нажатию кнопки делаю:
Код

 ConnectSocket.Connect("127.0.0.1", 2000);


Запускаю оба проекта. В Сервере нажимаю кнопку "Слушать порт", в клиенте - "Подсоединиться" и вижу в серверной части сообщение "Соединение". Все прекрасно, все работает. 
Но если соединить клиента и сервера  в одном проекте, т.е. грубо говоря добавить в проект "Сервер" еще однин button и на него повесить ConnectSocket.Connect("127.0.0.1", 2000) сообщения о подсоединении нету.  GetLastError() говорит что код ошибки = WSAENOTSOCK. 
Как это побороть, что за грабли? (( Подскажите кто знает.


Автор: drazah 21.11.2010, 11:25
разобрался.

Автор: voov 2.12.2010, 12:38
написал бы как...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)