你好我是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
答案 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不知道如何收听远程命令。