小编use*_*115的帖子

带有winsock和std :: thread的C++多线程服务器

thread添加时遇到包含模块的问题:

#include <thread>
Run Code Online (Sandbox Code Playgroud)

对bind函数的调用给出了错误:

错误3错误C2440:'=':无法从'std :: _ Bind <_Forced,_Ret,_Fun,_V0_t,_V1_t,_V2_t,_V3_t,_V4_t,_V5_t,>'转换为'int'c:\ users\ohadpeled\documents\visual studio 2012\projects\loginserver\loginserver\server.cpp 87 1 LoginServer 4 IntelliSense:没有合适的转换函数从"std :: _ Bind"到"int"存在c:\ Users\OhadPeled\Documents\Visual Studio 2012\Projects\LoginServer\LoginServer\Server.cpp 87 20 LoginServer

我不明白为什么它会导致这个错误,不包括线程模块,调用工作正常.如果有人能解释我是什么原因,我会很高兴.

这是服务器类的一部分:

            /* Set TCP listening socket */
            ListenResult = bind(ListenSocket, result->ai_addr, (int)result->ai_addrlen); // Error in this line
            if (ListenResult != SOCKET_ERROR) 
            {
                freeaddrinfo(result);

                ListenResult = listen(ListenSocket, SOMAXCONN);
                if (ListenResult != SOCKET_ERROR) 
                {
                    /* Accepting clients */
                    while(true)
                    {
                        ClientSocket = new SOCKET();
                        ADDR = new SOCKADDR_IN();
                        ADDRSize = sizeof(*ADDR);
                        *ClientSocket = …
Run Code Online (Sandbox Code Playgroud)

c++ sockets multithreading winsock

1
推荐指数
1
解决办法
2183
查看次数

标签 统计

c++ ×1

multithreading ×1

sockets ×1

winsock ×1