0

Windows ソケットの PGM (Pragmatic General Multicast) について知りました。msdn で送受信ソケットを構成する方法を読みましたが、機能していません。

これまでのコードは次のとおりです。

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

#include <stdio.h>
#include <iostream>
#include <ws2tcpip.h>
#include <Winsock2.h>
#include <wsrm.h>



int main( int argc, const char* argv[] )
{
    DWORD dwRet = NO_ERROR;

    WSADATA wsa_data;
    if( WSAStartup( MAKEWORD( 2, 0 ), &wsa_data ) != 0 ) {
        dwRet = GetLastError();
        WSACleanup();
        return dwRet;
    }

    SOCKET        s;
    SOCKADDR_IN   salocal, sasession;
    int           dwSessionPort;

    s = socket( AF_INET, SOCK_RDM, IPPROTO_RM );

    if( s == INVALID_SOCKET )
    {
        dwRet = GetLastError();
        WSACleanup();
        return dwRet;
    }

    salocal.sin_family = AF_INET;
    salocal.sin_port   = htons (0);    // Port is ignored here
    salocal.sin_addr.s_addr = htonl (INADDR_ANY);

    int iRet = bind (s, (SOCKADDR *)&salocal, sizeof(salocal));

    if( iRet == SOCKET_ERROR )
    {

        dwRet = GetLastError();
        WSACleanup();
        return dwRet;
    }

    dwSessionPort = 0;
    sasession.sin_family = AF_INET;
    sasession.sin_port   = htons (dwSessionPort);
    sasession.sin_addr.s_addr = inet_addr ("234.5.6.7");

    connect (s, (SOCKADDR *)&sasession, sizeof(sasession));

    return dwRet;
}

ソケットを作成しようとすると、エラー コード 10044 (Socket type not supported) が表示されます。PGM の使用を有効にするにはどうすればよいですか?

現在、MSMQ がインストールされた Windows 7 で作業しています。

編集 これは私が読んだmsdnサイトです。

4

1 に答える 1