socket프로그램 bind()에러 부분에 대해서 질문드릴게요.

poiq1의 이미지

해당 소스는 이렇습니다.

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 명령어로 봐도 해당 포트는 열려져 있지 않구요...