Тема: ACE_SOCK_Acceptor
Показать сообщение отдельно
Старый 27.11.2012, 19:02   #1
HuntsMan
Ученый
 
Аватар для HuntsMan
 
Регистрация: 19.12.2010
Сообщений: 220
Сказал(а) спасибо: 64
Поблагодарили 12 раз(а) в 9 сообщениях
Записей в дневнике: 2
HuntsMan На верном пути
По умолчанию ACE_SOCK_Acceptor

Пытаюсь выполнить пример из мурзилки. Но почему-то не хочет открываться порт. Пробывал уже не только 80 (который у меня не капли не занят) но и кучу других, все тоже самое.

Код:
int _tmain(int argc, _TCHAR* argv[])
{
	ACE_INET_Addr server_addr(80, "0.0.0.0");
	ACE_SOCK_Acceptor acceptor;
	ACE_SOCK_Stream peer;

	if (acceptor.open(server_addr) == -1)
	{
		std::cout << "Failed to open acceptor, check if the port is free" << std::endl;
		return 1;
	}

	while (true)
	{
		if (acceptor.accept(peer) == -1)
			return 1;

		peer.disable(ACE_NONBLOCK);

		char* pathname = get_url_pathname(&peer);

		ACE_Mem_Map mapped_file(pathname);

		if (peer.send_n(mapped_file.addr(), mapped_file.size()) == -1)
			return 1;

		peer.close();
	}
}
Подскажите, в чем может быть дело?
HuntsMan вне форума   Ответить с цитированием