socket프로그램 bind()에러 부분에 대해서 질문드릴게요.
해당 소스는 이렇습니다.
int nServerSock;
int nOn;
struct sockaddr_in stServerAddr;
if((nServerSock = socket(PF_INET, SOCK_STREAM, 0)) < 0)
{
if(LogMessage("socket creat fail")==-1)
{
return -2;
}
return -1;
}
setsockopt(nServerSock, SOL_SOCKET, SO_REUSEADDR, &nOn, sizeof(nOn));
memset(&stServerAddr, 0, sizeof(stServerAddr));
stServerAddr.sin_family=AF_INET;
stServerAddr.sin_addr.s_addr=htonl(INADDR_ANY);
stServerAddr.sin_port=htons(atoi("3130"));
if(bind(nServerSock, (struct sockaddr*) &stServerAddr, sizeof(stServerAddr))==-1)
{
if(LogMessage("bind error : %d", errno)==-1)
{
return -2;
}
return -1;
}
....
bind()함수시 오류가 나오는데.. log파일을 확인해본 결과
bind error : 22 로 나옵니다.
번호를 확인해 보니 EINVAL 22 /* Invalid argument */
나오더라구요... 이미 해당 포트가 열려져 있을때 저런 오류 메시지가 나온다는 말이 잇던데..
해서 포트 번호 변경해서 해보아도 동일한 문제고,
netstat -tpl 명령어로 봐도 해당 포트는 열려져 있지 않구요...
댓글 달기