C++, nie mozna wywolac bind()

0

Witam!

Prosze o pomoc!
Pisze program ktory wywola zwykly bind ! a tu juz dostaje bład! Jak to mozliwe ?
robie wszystko poprawnie, w C kod ten przechodzi a w C++ nie! Przeciez to jest niemożliwe !!

   struct sockaddr_in s_addr;
  
   int sockfd = socket(AF_INET,SOCK_STREAM,0);
   if(sockfd < 0)
     cout<<"blad"<<endl;

    memset(&s_addr,0,sizeof(s_addr));
    s_addr.sin_family = AF_INET;
    s_addr.sin_port = htons(12345);
    s_addr.sin_addr.s_addr = INADDR_ANY; //kazdy interfejs
    

    if ( bind(sockfd ,( sockaddr*)&s_addr,sizeof ( sockaddr ) == -1 ))
    {
	std::perror("error in bind()");
        return false;
    }
0

z roztargnienia nie dostałem w czym dokładnie tkwi problem, otóż dostje błąd w funkcji bind: INVALID ARGUMENT

0

if(bind(sockfd,(sockaddr*)&s_addr,sizeof(sockaddr))==-1)

0
_13th_Dragon napisał(a)

if(bind(sockfd,(sockaddr*)&s_addr,sizeof(sockaddr))==-1)

i to własnie mi nie dziala. Nie przypisuje adresu do gniazda! kod ten w C przechodzi (oczywiscie po dodaniu struct) a w C++ funkcja daje blad?!?!

0
_13th_Dragon napisał(a)

if(bind(sockfd,(sockaddr*)&s_addr,sizeof(sockaddr))==-1)

dziekuje :( szkoda gadac, prosze to usunac

1 użytkowników online, w tym zalogowanych: 0, gości: 1