在bind邦定时,通常会出现bind:Address alreasy is use错误。
此错误可以用setsockopt函数避免
int setsockopt(int sockfd,int level,int optname,const void *optval,socklen_t optlen)
sockfd:套接字描述符
level:层次 SOL_SOCKET
optname:需要设置的选项
optval:指向存放选项值缓冲区的指针
optlen:optval缓冲区的长度
此函数放在bind函数之前
例如:
1 /*使用套接字选项,避免出错*/2 if(setsockopt(listenfd,SOL_SOCKET,SO_REUSEADDR,&opt,sizeof(opt)) != 0)3 {4 perror("setsockopt");5 exit(1);6 }