Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++: Сети
Войти
Регистрация
Восстановить пароль
 
DUMP
73 / 47 / 26
Регистрация: 22.02.2015
Сообщений: 306
1

Ошибка при подключении <thread>

31.05.2015, 12:49. Просмотров 412. Ответов 2
Метки нет (Все метки)

Имеется "сервер", который запускается и выключается. Всё работает нормально, но при подключении библиотеки <thread> компилятор начинает ругаться на ошибки.
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
#include <Winsock2.h>
#include <windows.h>
#include <iostream>
//#include <thread> - вот из-за него !
 
using namespace std;
 
 
int main()
{
    WSADATA wsd;
    if (WSAStartup(0x0202, &wsd) != 0)
    {
        MessageBox(0, "Winsock err", "Error", 0);
        return 0;
    }
 
    SOCKET server;
 
    server = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
 
    struct sockaddr_in s_Setting;
    s_Setting.sin_addr.s_addr = htonl(INADDR_ANY);
    s_Setting.sin_family = AF_INET;
    s_Setting.sin_port = htons(5050);
 
    if (bind(server, (struct sockaddr*)&s_Setting, sizeof(s_Setting)) == SOCKET_ERROR)
    {
        MessageBox(0, "Bind err", "Error", 0);
        return 0;
    }   
 
    shutdown(server, 0);
    closesocket(server);
    WSACleanup();
    return 0;
}
Ошибки:
Код
1>main.cpp(27): error C2678: бинарный "==": не найден оператор, принимающий левый операнд типа "std::_Bind<false,void,SOCKET &,sockaddr *,unsigned int>" (или приемлемое преобразование отсутствует)
1>          guiddef.h(192): может быть "bool operator ==(const GUID &,const GUID &)"
1>          thread(202): или       "bool std::operator ==(std::thread::id,std::thread::id) throw()"
1>          system_error(410): или       "bool std::operator ==(const std::error_condition &,const std::error_code &) throw()"
1>          system_error(402): или       "bool std::operator ==(const std::error_code &,const std::error_condition &) throw()"
1>         exception(507): или       "bool std::operator ==(const std::exception_ptr &,std::nullptr_t)"
1>         exception(502): или       "bool std::operator ==(std::nullptr_t,const std::exception_ptr &)"
1>          exception(497): или       "bool std::operator ==(const std::exception_ptr &,const std::exception_ptr &)"
1>          при попытке сопоставить список аргументов "(std::_Bind<false,void,SOCKET &,sockaddr *,unsigned int>, int)"
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.05.2015, 12:49
Ответы с готовыми решениями:

Ошибка при подключении по тем же данным
При вводе данных в консольном приложении (TCP Socket) при подключении к серверу...

Ошибка lnk2019 при подключении к MySQL
Доброго Времени Суток! В общем, я нашел здесь небольшой туториал по...

Ошибка "неопределенная ссылка" при работе с std::thread
При попытке сделать что-либо с std::thread, выдает ошибку компиляции,...

Исправить ошибки линковки при подключении библиотек Ilu
Здравствуйте подскажите как исправить, уже 2 день пытаюсь и ничего не...

Перестает "работать" сервер при повторном подключении клиента
Здравствуйте! Я совершенно недавно начал изучение С++ по этому столкнулся с...

2
retmas
Жарю без масла
865 / 747 / 225
Регистрация: 13.01.2012
Сообщений: 1,702
31.05.2015, 14:20 2
C++
1
2
3
4
5
6
7
8
9
#include <Winsock2.h>
// ...
#include <thread>
 
using namespace std; // (1)
 
// ...
    if(bind(...) == SOCKET_ERROR)
// ...
в Winsock2.h определена та самая bind, которой вы пользуетесь. вроде бы все нормально, но!
в стандартной библиотеке есть std::bind (определена в <functional>), которая имеет совсем иное назначение. строкой (1) вы вносите неопределенность для компилятора. так что либо не вносите пространство имен std в глобальное, либо указывайте явно, например
C++
1
2
3
4
5
// ...
server = ::socket(...);
// ...
if(::bind(...) == SOCKET_ERROR)
// и т.д. ...
1
DUMP
73 / 47 / 26
Регистрация: 22.02.2015
Сообщений: 306
31.05.2015, 15:04  [ТС] 3
Спасибо. Работает.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.05.2015, 15:04

THREAD.H (многопоточность)
нужно срочно разобраться в этой теме, но компилятор не находит THREAD.H ...

Thread ошибка при подключении библиотеки
подключаю библиотеку &lt;thread&gt; и выскакивает вот такая ошибка ...

Ошибка при подключении "В удаленном подключении отказано"
Что может означать следующая ошибка? Пороль и имя правильны! Еще появляется...


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

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

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