Visual C ++中的irda socket编程

时间:2015-10-08 11:34:20

标签: sockets

你好我是irda套接字的新手。我有一个内置Apple IR reciver的macbook pro。我正在使用visual studio 2013,

#include <af_irda.h>
#include <winsock2.h>
#incude <iostream>
using namespace std;
#pragma comment(lib,"ws2_32.lib")

int main()
{
    WORD wVersion = MAKEWORD(2,2);
    WSADATA wSaData;
    if(WSAStartup(wVersion), &wSaData))
    {
        cout << "Failed to initialize winsock library!\n";
        return 1;
    }

    int irSock = socket(AF_IRDA, SOCK_STREAM, 0);
    if(irSock == SOCKET_ERROR)        
    {
        cout << "Socket creation failed!   error code: " << WSAGetLastError() << endl;
    }

    //the socket creation failed with 10047


    cout << endl << endl << endl;
    system("pause");
    return 0;
}

这是否意味着我的笔记本电脑没有irda适配器?如果是这样什么是IR接收器呢?我们不能用IR接收器写irda socket应用程序??? ***非常感谢anyhelp

1 个答案:

答案 0 :(得分:0)

1-套接字创建失败,WSAGetLastError()在不支持地址系列时返回10047。 (即:错误不属于硬件而属于平台)

在windows7,8,10(几乎所有新的Windows操作系统不包括irDA支持)我们在windows xp上获得此错误,linux fedora套接字创建成功但这并不意味着你的笔记本电脑/ pc必须提供irDA适配器。

2- IR接收器不是irDA适配器: IR接收器只是一个读取IR命令的哑接收器(这是一个艰难的命令!)。 IRDA是一种复杂的双向协议,涉及与通常用于传输文件或模拟手持设备与笔记本电脑或PC之间的串行接口的确认的可靠通信。或者,正如Wannabe所说,你想要一个IR接收器,因为IRDA不知道如何收听远程命令。