0
방금 Windows 소켓에서 PGM (Pragmatic General Multicast)에 대해 알았습니다. 내가 보내고 소켓을 구성하는 방법을 msdn에 읽어하지만 작동하지 않습니다. 내가 소켓을 만들려고 할 때PGM winsock2가 소켓을 만들지 못했습니다.
#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 (지원되지 않는 소켓 타입) :
이
지금까지 코드입니다. PGM을 어떻게 사용할 수 있습니까?현재 MSMQ가 설치된 Windows 7에서 작업하고 있습니다.
편집 이것은 내가 읽은 msdn 사이트입니다.