S
sasha465
Помггите пожалуйста разобраться и найти ошибку при создании серверного сокета. Вообщем функция bind возвращает значение -1, то есть завершается с ошибкой вот собсно код:
Вроде все должно быть элементарно, а не работает. Где же ошибка?
C++:
static struct sockaddr_in SrvAddr;
struct sockaddr_in ConnectAddr;
static SOCKET SrvSock, sockio;
WSADATA wsa;
WORD wVersion;
..............................
wVersion=MAKEWORD(2,0);
WSAStartup(wVersion,&wsa);
SrvSock=socket(AF_INET,SOCK_STREAM,0);
if (SrvSock == -1)
MessageBox(hWnd,L"couldn't create a socket",L"message",MB_OK); // здесь ошибки не выдает
memset ((char *)&SrvAddr, '\0', sizeof(SrvAddr));
SrvAddr.sin_family=AF_INET;
SrvAddr.sin_port=htons(1026);
SrvAddr.sin_addr.S_un.S_addr=0; // если сюда вставить INADDR_ANY или htonl(INADDR_ANY) ничего не изменится
if(bind(SrvSock,(sockaddr*) &SrvAddr, sizeof(SrvAddr)))
MessageBox(hWnd,L"error",L"message",MB_OK); // а вот это сообщение об ошибки срабатывает
listen(SrvSock,5);
Addrlen=sizeof(ConnectAddr);
sockio=accept(SrvSock, (SOCKADDR*) &ConnectAddr,&Addrlen);
shutdown(sockio,2);
closesocket(sockio);
Вроде все должно быть элементарно, а не работает. Где же ошибка?