PDA

Просмотр полной версии : ACE_SOCK_Acceptor


HuntsMan
27.11.2012, 19:02
Пытаюсь выполнить пример из мурзилки. Но почему-то не хочет открываться порт. Пробывал уже не только 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();
}
}

Подскажите, в чем может быть дело?

Йоха
30.11.2012, 09:56
адрес 0.0.0.0 думаешь это нормально ?

Sid
30.11.2012, 11:34
Для прослушивания с любого хоста обычно так и указывают. По крайней мере в qt такой адрес эквивалентен любому адресу.
http://qt-project.org/doc/qt-5.0/qhostaddress.html#SpecialAddress-enum

HuntsMan
30.11.2012, 12:39
адрес 0.0.0.0 думаешь это нормально ?
Ну да, даже мангос такой адрес слушает по дефолту и все норм.