winsock を使用して、サーバー アプリが特定の (たとえば192.168.0.0/24) サブネットワークからの接続のみを受け入れるようにします。
私は2つのオプションを考えています:
接続するたびにクライアントのアドレスを確認します
accept。while (true) { SOCKET clientSocket = accept(serverSocket, (SOCKADDR *)&clientAddress, &addressLenght); if (clientSocket == INVALID_SOCKET || clientAddress.sin_addr.S_un.S_un_b.s_b1 != 192 || clientAddress.sin_addr.S_un.S_un_b.s_b2 != 168 || clientAddress.sin_addr.S_un.S_un_b.s_b3 != 0) { closesocket(clientSocket); continue; } ... }対応するネットワークのローカル アドレスを見つけて、それを
name引数として使用します。bindSOCKADDR_IN serverAddress; serverAddress.sin_family = AF_INET; serverAddress.sin_port = htons(13666); serverAddress.sin_addr.S_un.S_addr = inet_addr("192.168.0.1"); result = bind(serverSocket, (SOCKADDR *)&serverAddress, sizeof(serverAddress));
他にどのようなオプションがありますか?
PS: より良い解決策があると言われました。しかし、私はそれを理解することはできません。