服务器问题

时间:2018-05-13 18:38:38

标签: c++ sockets server

我尝试制作多线程服务器(C ++,Visual Studio 2017),但有一个问题:每次我开始启动我的.exe时,我都连接到端口52428(我甚至没有启动客户端)。为什么要匆匆而过,我应该如何摆脱它。

服务器:

#include <winsock2.h>
#include <thread>

#pragma comment(lib, "ws2_32.lib")

int main()
{
    WORD wVersionRequested;
    WSADATA wsaData;
    int err;
    wVersionRequested = MAKEWORD(2, 2);
    err = WSAStartup(wVersionRequested, &wsaData);
    if(err != 0)
        return -1;

    sockaddr_in local;
    local.sin_family = AF_INET;
    local.sin_port = htons(8080);
    local.sin_addr.s_addr = htonl(INADDR_ANY);
    SOCKET s = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);

    bind(s, (struct sockaddr*)&local, sizeof(local));
    cout << "Start server..." << endl;
    int r = listen(s, 10000);
    while(true)
    {
        sockaddr_in remote;
        int j = sizeof(remote);
        SOCKET newS = accept(s, (struct sockaddr*) &remote, &j);
        if (newS == INVALID_SOCKET)
            continue;
        Socket sock = {newS, remote.sin_port, const_cast<const char*>(inet_ntoa(remote.sin_addr))}; // save socket, port and IP
        cout << " Connect to port " << sock.port << endl;
        thread thr(processing, ref(sock));
        thr.join();
    }
    WSACleanup();
    return 0;
}

感谢您的帮助。

0 个答案:

没有答案