[WinSock] problem z funkcja accept
Ostatnio zmodyfikowano 2012-06-05 23:00
yoogi Temat założony przez niniejszego użytkownika |
[WinSock] problem z funkcja accept » 2012-06-03 22:24:57 Witam, mam pewien problem którego nie potrafię rozwiązać, a mianowicie pokaże kod, tak będzie lepiej :) error: ... accept: Bad file descriptor accept: Bad file descriptor accept: Bad file descriptor accept: Bad file descriptor ...
code: while( true ) { sin_size = sizeof( struct sockaddr_in ); if(( new_fd = accept( sockfd,( struct sockaddr * ) & their_addr,( unsigned int * ) & sin_size ) ) == - 1 ) { perror( "accept" ); continue; } if( !fork() ) { close( sockfd );
if( ch == 2 ) { printf( "%s>", inet_ntoa( their_addr.sin_addr ) ); string tkCmd; getline( cin, tkCmd ); if( tkCmd == "connect" ) { vector < string > vc = tkGetLine( 5 ); if( send( new_fd, tkCmd.c_str(), strlen( tkCmd.c_str() ), 0 ) == - 1 ) perror( "send" ); close( new_fd ); for( int i = 0; i < vc.size(); i++ ) { sin_size = sizeof( struct sockaddr_in ); if(( new_fd = accept( sockfd,( struct sockaddr * ) & their_addr,( unsigned int * ) & sin_size ) ) == - 1 ) { perror( "accept" ); continue; } if( send( new_fd, vc[ i ].c_str(), strlen( vc[ i ].c_str() ), 0 ) == - 1 ) perror( "send" ); close( new_fd ); } } }
|
|
DejaVu |
» 2012-06-05 19:10:28 |
|
yoogi Temat założony przez niniejszego użytkownika |
» 2012-06-05 22:08:33 Mam rozumieć, że WinSock pod systemu Unixowe jest "inny" niż pod Microsoftowe ? |
|
DejaVu |
» 2012-06-05 22:50:40 API jest praktycznie rzecz biorąc jednakowe dla Unixa jak i Windowsa. |
|
yoogi Temat założony przez niniejszego użytkownika |
» 2012-06-05 23:00:59 Pod Windowsem nie ma dla przykładu funkcji perror, lub pod Unixem się zamyka gniazda za pomocą funkcji close, a pod Windowsem za closesocket. Jest nieco różnic |
|
« 1 » |