help:Infrared Communication
I would like to write an infrared application using Visual C++ 6.0 and
Windows xp,
#include <winsock2.h>
#include <af_irda.h>
#include <stdio.h>
#include <stdlib.h>
#define IR_SERVICE_NAME "MyServer"
#define MAX_BUFFER 4096
DWORD WINAPI ClientThread(LPVOID lpParam)
{
SOCKET s = (SOCKET)lpParam;
int ret;
char szRecvBuff[MAX_BUFFER];
while (1)
{
//
// Read data from client
//
if ((ret = recv(s, szRecvBuff, MAX_BUFFER, 0)) == SOCKET_ERROR)
{
printf("recv failed with error %d\n", WSAGetLastError());
break;
}
if (ret == 0)
break;
printf("Successfully received %d bytes\n", ret);
//
// Echo data back to client
//
if ((ret = send(s, szRecvBuff, ret, 0)) == SOCKET_ERROR)
{
printf("send failed with error %d\n", WSAGetLastError());
break;
}
printf("Successfully sent %d bytes\n", ret);
}
printf("Closing connection\n");
closesocket(s);
return 0;
}
#ifdef _WIN32_WCE
int WINAPI WinMain(HANDLE hInstance, HANDLE hPrevIntance,
LPTSTR lpCmdLine, int nCmdShow)
#else
void main(int argc, char **argv)
#endif
{
WSADATA wsd;
SOCKET sock,
sockClient;
SOCKADDR_IRDA irAddr = {AF_IRDA, 0, 0, 0, 0, "\0"},
remoteIrAddr;
int iIrSize = sizeof(SOCKADDR_IRDA);
DWORD dwId;
BOOL bDone=FALSE;
HANDLE hThread;
WORD wVersion;
#ifdef _WIN32_WCE
wVersion = MAKEWORD(1,1);
#else
wVersion = MAKEWORD(2,2);
#endif
if (WSAStartup(wVersion, &wsd) != 0)
{
printf("Unable to load Winsock library!\n");
return;
}
if ((sock = socket(AF_IRDA, SOCK_STREAM, 0)) == INVALID_SOCKET)
{
printf("socket failed with error %d\n", WSAGetLastError());
return;
}
strcpy(irAddr.irdaServiceName, IR_SERVICE_NAME);
//
// Bind our socket to the local service name
//
printf("Binding to service class name: %s\n",
irAddr.irdaServiceName);
if (bind(sock, (struct sockaddr *)&irAddr, sizeof(SOCKADDR_IRDA))
== SOCKET_ERROR)
{
printf("bind failed with error %d\n", WSAGetLastError());
return;
}
listen(sock, 10);
printf("Bound and listening\n");
while (1)
{
if ((sockClient = accept(sock, (struct sockaddr
*)&remoteIrAddr, &iIrSize)) == SOCKET_ERROR)
{
printf("accept failed with error %d\n", WSAGetLastError());
return;
}
printf("Accepted a connection\n");
// Process I/O in a seperate thread.
hThread = CreateThread(NULL, 0, ClientThread,
(LPVOID)sockClient, 0, &dwId);
CloseHandle(hThread);
}
// Close and cleanup
//
closesocket(sock);
WSACleanup();
}
but when I compile a existing program,the error:f"atal error C1083:
Cannot open include file: 'af_irda.h': No such file or directory".I
have added ws2_32.lib but also cann't find the definition of af_irda.
thank you every much.