使用udp发送广播数据,发送出错,请前辈帮忙!
各位前辈,小弟近日在编写一个使用udp进行广播的动态库程序,广播地址为255.255.255.255。在win2000下开发,在本机上测试没有发现问题,可以正常使用。交给客户使用,客户反映无法使用。经过测试,在比较干净的电脑上确实无法使用,函数出错返回。程序如下;
class UDPSocket : public CAsyncSocket
{
......
}
UDPSocket *g_pUDPSocket;//此为全局指针
extern "C" int __stdcall udp_broadcast(SEARCHECHO Proc)
{
int sendlen;
BOOL bBroadcast = true;
g_pUDPSocket->NewDeviceProc = Proc;
g_pUDPSocket->SetSockOpt(SO_BROADCAST, (BOOL*)&bBroadcast, sizeof(BOOL));
sendlen = g_pUDPSocket->SendTo("X", 1, 65535, "255.255.255.255");
if (sendlen == SOCKET_ERROR)
{
return (g_pUDPSocket->GetLastError());
}
else
return(1);
}
函数返回10022,表示SendTo使用了一个无效的参数。百思不得其解,不知哪位前辈可以告知?