проблемка сFreeBSD


[ Комментарии ] [ Добавить комментарий ] [ Доска объявлений HackZone ]

Отправитель: Nataly, August 09, 1998, 21:09:54:

В программке (которая должна слушать определенный порт ) есть такой кусок ( port назначается ранее) :

int socket_declare(int port)
{
struct sockaddr_in srvadr;
int sockfd;

if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0)
return(-1);
memset(&srvadr, '\0', sizeof(srvadr));
srvadr.sin_family = AF_INET;
srvadr.sin_addr.s_addr = htonl(INADDR_ANY);
srvadr.sin_port = htons(port);
if (bind(sockfd, (struct sockaddr *)&srvadr, sizeof(srvadr)) == -1)
{
close(sockfd);
return(-1);
}
if (listen(sockfd, 0) == -1)
{
close(sockfd);
return(-1);
}
return sockfd;
}


Под SunOS все работает без проблем , а под FreeBSD почему-то назначается совершенно случайный порт , никаких ошибок при компиляции не выдается...На нескольких компах пробовала , одна и та же лажа....
Причем , что самое удивительное , когда я первый раз запустила ее под фрей , она повесилась именно на тот порт , который я задала.... Больше такого не удавалось....
Подскажите , в чем может быть дело? Спасибо!


Комментарии:


Цитировать сообщение


[ Комментарии ] [ Доска объявлений HackZone ]