2 / 2 / 0
Регистрация: 13.12.2011
Сообщений: 46
1

Создание Серверного Сокета

11.04.2012, 17:23. Показов 1756. Ответов 1
Метки нет (Все метки)

Помогите пожалуйста разобраться и найти ошибку при создании серверного сокета. В общем функция bind возвращает значение -1, то есть завершается с ошибкой вот собсно код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
  
    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);
Вроде все должно быть элементарно, а не работает. Где же ошибка?
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.04.2012, 17:23
Ответы с готовыми решениями:

Создание сокета
Всем доброго времени суток. Знаю, таких тем тут уже 100500, но всеже прошу о помощи: помогите...

Создание сокета
Кто-нибудь помогите! Нужен рабочий код сервера и клиента с UDP соединением (сокет). Буду премного...

Создание сокета(начальный уровень)
Прошу помочь разобраться в чем проблема , не могу соединиться с хостом на 25 порту , там как я...

Работа с сокетами. Создание сокета сервера
Проверьте, пожалуйста программу (она еще не дописана до конца), выскажите замечания. #include...

1
8 / 8 / 5
Регистрация: 10.04.2012
Сообщений: 34
11.04.2012, 20:37 2
Цитата Сообщение от Brandan Посмотреть сообщение
Помогите пожалуйста разобраться и найти ошибку при создании серверного сокета. В общем функция bind возвращает значение -1, то есть завершается с ошибкой вот собсно код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
  
    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);
Вроде все должно быть элементарно, а не работает. Где же ошибка?
скорее всего уже кто-то висит на порту. WSAGetLastError(); в помощь
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.04.2012, 20:37
Помогаю со студенческими работами здесь

Создание dll библиотеки для клиент-серверного приложения
Всем форумчанам привет. Стала задача создать dll для клиент-серверного приложения. Дело в том, что...

Вызов серверного сокета в клиентском
Мой серверный сокет помещен по следующему адресу http://321.32.321.32/~account/Server.class. ...

Создание серверного приложения
Доброго времени суток всем! Мне необходимо создать небольшое серверное приложение, сейчас оно...

Создание сокета
Не совсем понял, можно ли сделать соединение socket, если сеть удаленная. То есть сервер находится...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru