Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++: Сети
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
bars268
7 / 7 / 3
Регистрация: 26.01.2013
Сообщений: 59
Завершенные тесты: 1
1

WinSock выдает ошибку при вызове функции bind

28.10.2013, 21:08. Просмотров 1198. Ответов 1
Метки нет (Все метки)

исходный код (взять ОТСЮДА почти полностью, "пример реализации TCP сервера")
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#pragma hdrstop
 
#include <tchar.h>
#include <conio.h>
#include <iostream.h>
#include <winsock2.h>
#include <windows.h>
 
 
#define PORT 666
//---------------------------------------------------------------------------
 
#pragma argsused
int _tmain(int argc, _TCHAR* argv[])
{
WSADATA wsd;
if (WSAStartup(MAKEWORD(2,0), &wsd)!=0) {
    printf("Ошибка старта сокета", WSAGetLastError());
}
else {
    //создание сокета
    SOCKET S;
    if (S = socket(AF_INET, SOCK_STREAM, 0) < 0) {
        printf("Error socket %d\n",WSAGetLastError());
        WSACleanup();
    }
    // связывание сокета с локальным адресом
    sockaddr_in local_addr;
    local_addr.sin_family = AF_INET;
    local_addr.sin_port=htons(PORT);
    local_addr.sin_addr.s_addr=0;   //принимает подключения на все IP фдреса
 
    //связывание функция
    if (bind(S,(sockaddr *) &local_addr, sizeof(local_addr))) {
      // Ошибка
      printf("Error bind %d\n",WSAGetLastError());
      closesocket(S);  // закрываем сокет!
      WSACleanup();
      return -1;
    }
    // ожидание подключений
    // размер очереди – 0x100
    if (listen(S, 0x100)) {
      printf("Error listen %d\n",WSAGetLastError());
      closesocket(S);
      WSACleanup();
      return -1;
    }
    printf("Waiting for connction\n");
}
getch();
    return 0;
}
//---------------------------------------------------------------------------

На функции bind выдает ошибку с кодом 10038. Причину ошибки даже после гугления я не понял. Помогите пожалуйста.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.10.2013, 21:08
Ответы с готовыми решениями:

Winsock Bind Error 10014
bool Server::Bind() { server_address.sin_family = AF_INET; ...

баг при вызове функции(сеть)
curl_global_init(CURL_GLOBAL_WIN32); // - выдаёт такую ошибку : error...

выдает ошибку при компиляции в MS VS 2010 простой проги
я вот начал переписывать прогу, которая обрабатывает данные и заносит их в бд. ...

При вызове функции из OpenSSL программа завершается с кодом 0х1
int main(int argc, char* argv) { RSA *keypair =...

Ошибка после функции bind
Пытаюсь первый раз написать по книге клиент-сервер. В этом практически ничего...

1
grgdvo
751 / 638 / 226
Регистрация: 02.09.2012
Сообщений: 1,883
29.10.2013, 14:29 2
Коды ошибок здесь.

Судя по ошибке, неверно сокет создался. Странно...

Результат вызова socket сравнивайте с SOCKET_INVALID (!= или == SOCKET_INVALID), а не сравнение с 0.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.10.2013, 14:29

Как правильно перекомпилировать под windows функции connect, accept, bind?
компилятор пишет ошибку &quot;переопределение. другая кмпоновка&quot; смотрю про...

UDPSocket через функции WINSOCK
Приложения написаны на Delphi (клиент и сервер), передача данных осуществляется...

Winsock программа выполняет не все функции
Доброго времени суток форумчане! Пишу на C++. Версия компилятора 2.95.2...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru