socketプログラミングのよくある問題ノート
1321 ワード
int listenfd = socket(PF_INET, SOCK_STREAM, 0);
int fdflag = fnctl(listenfd, F_GETFL);
if( fcntl(listenfd, F_SETFL, fdflag | O_NONBLOCK) == -1)
{
close(listenfd);
perror("set listenfd to non-block error");
}
2. bind error
2.1 bind 0.0.0.0 ( ip),127.0.0.1 (lo, ),192.168.x.x( ); bind bind error。
2.2 time wait bind bind error, socket REUSEADDR 。
const int reuseaddr_flag = 1;
if ( setsockopt(listenfd, SOL_SOCKET, SO_REUSEADDR, &reuseaddr_flag, sizeof(int)) == -1 )
{
close(listenfd);
perror("set socket option SO_REUSEADDR fail");
}