Модераторы: feodorv
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [TCP] Коннект к серверу, Ошибка 
V
    Опции темы
Sergio
Дата 27.8.2008, 01:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 843
Регистрация: 28.7.2006
Где: Solar System-> Earth

Репутация: нет
Всего: 1



Привет. При коннекте к сервере выдаёт ошибку в лог: SOCKET_ERROR
Вот серверная часть:
Код

int winTransfer::TransferRun(int port)
{

    FILE *file;
    file = fopen("C:\\TransferRun_log.txt","w+");
    fprintf(file,"Port: %d\n", port);


    this->sServer = socket(AF_INET, SOCK_STREAM, IPPROTO_IP);
    if (this->sServer == INVALID_SOCKET)
    {
        fprintf(file,"Error: %s\n", "INVALID_SOCKET");
        return 0;
    }
    localaddr.sin_addr.s_addr = htonl(INADDR_ANY);
    localaddr.sin_family = AF_INET;
    localaddr.sin_port = htons(27007);

    if (bind(this->sServer, (struct sockaddr *)&this->localaddr, sizeof(this->localaddr)) == SOCKET_ERROR)
    {
        fprintf(file,"Error: %s\n", "SOCKET_ERROR");
        return -1;
    }
    else
    {
        fprintf(file,"Error: %s\n", "SOCKET_OK");
        return 0;
    }

    listen(this->sServer, 4);
    fclose(file);
}


Код

int winTransfer::TransferListen()
{
    SOCKET acceptedSocket = NULL;
    struct sockaddr_in clientaddr;
    int iSize = sizeof(clientaddr);

    while(true)
    {
        acceptedSocket = accept(this->sServer, (struct sockaddr *)&this->localaddr, &iSize);
    }
    return 0;
}

Клиентская часть:
Код

int winTransfer::TransferConnect()
{

    char    szBuffer[1024];
    int        i;
    struct    sockaddr_in server;
    struct    hostent    *host = NULL;
    char    szServerName[1024];

    FILE *file;
    file = fopen("C:\\TransferConnect_log.txt","w+");
    fprintf(file,"IP: %s\n", IP);

    strcpy(szServerName, "127.0.0.1");

    fprintf(file,"szServerName: %s\n", szServerName);

    // Создание сокета
    this->sClient = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);

Код


    fprintf(file,"this->sClient: %g\n", this->sClient);

    if (this->sClient == INVALID_SOCKET)
    {
//        printf("Can't create socket\n");
        fprintf(file,"Error: %s\n", "INVALID_SOCKET");
        return 1;
    }
    // Заполнение структуры с адресом сервера и номером порта
    server.sin_family = AF_INET;
    server.sin_port = htons(27007);
    server.sin_addr.s_addr = inet_addr("127.0.0.1");

    // Если указано имя, то перевод символьного адреса сервера в IP
    if (server.sin_addr.s_addr == INADDR_NONE)
    {
        host = gethostbyname(szServerName);
        if (host == NULL)
        {
//            printf("Unable to resolve server\n");
            return 1;
        }

        CopyMemory(&server.sin_addr, host->h_addr_list[0], host->h_length);
    }

    // Соединение с сервером
    if (connect(this->sClient, (struct sockaddr *)&server, sizeof(server)) == SOCKET_ERROR)
    {
        fprintf(file,"IP: %s\n", "SOCKET_ERROR");
        fprintf(file,"this->sClient: %g\n", this->sClient);
        return -1;
    }
    else
    {
        fprintf(file,"IP: %s\n", "SOCKET_OK");
        return 0;
    }
    fclose(file);
}


Это сообщение отредактировал(а) Sergio - 27.8.2008, 01:15
PM MAIL ICQ   Вверх
MAKCim
Дата 27.8.2008, 13:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 6
Всего: 207



Sergio, 
ну, может, порт 27007 используется
или еще чего
код ошибки в студию


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
Sergio
Дата 27.8.2008, 18:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 843
Регистрация: 28.7.2006
Где: Solar System-> Earth

Репутация: нет
Всего: 1



MAKCim, SOCKET_ERROR при исп. функции connect
PM MAIL ICQ   Вверх
Sergio
Дата 27.8.2008, 20:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 843
Регистрация: 28.7.2006
Где: Solar System-> Earth

Репутация: нет
Всего: 1



А вот и ошибка:  smile
Код

    if (bind(this->sServer, (struct sockaddr *)&this->localaddr, sizeof(this->localaddr)) == SOCKET_ERROR)
    {
        fprintf(file,"Error: %s\n", "SOCKET_ERROR");
        return -1;
    }
    else
    {
        fprintf(file,"Error: %s\n", "SOCKET_OK");
        return 0;                                                      //<<<<<<<<<<<<<<<<<<<<<<<<
    }

    listen(this->sServer, 4);

PM MAIL ICQ   Вверх
MAKCim
Дата 27.8.2008, 21:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 6
Всего: 207



Цитата(Sergio @  27.8.2008,  18:43 Найти цитируемый пост)
SOCKET_ERROR при исп. функции connect 

это не код ошибки, блин
код ошибки - это то, что в errno или аналоге


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
Олег2005
Дата 11.9.2008, 15:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Завсегдатай
Сообщений: 421
Регистрация: 26.5.2005
Где: Рига Латвия

Репутация: 6
Всего: 11



Цитата(Sergio @  27.8.2008,  17:43 Найти цитируемый пост)
SOCKET_ERROR при исп. функции connect 

функция коннект выполняется на клиенте  - вы же ошибку показываете бинд на сервере smile 
вот тут  внутри и надо анализировать код в errno (*nix или WSAGetLastError в винде)
 if (connect(this->sClient, (struct sockaddr *)&server, sizeof(server)) == SOCKET_ERROR)
    {
        fprintf(file,"IP: %s\n", "SOCKET_ERROR");
        fprintf(file,"this->sClient: %g\n", this->sClient);
        return -1;
    }
если как вы утверждаете ошибка при коннекте.

Это сообщение отредактировал(а) Олег2005 - 11.9.2008, 15:33
PM MAIL WWW MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0442 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.