一个winsock广播程序编译时出错
广播代码如下:
#define g_lBordCastPortRc 1680
BOOL g_BCTSendTo(LPVOID lpData,int nSize)
{
// TODO: Add your command handler code here
SOCKET s=INVALID_SOCKET;
s=::socket(AF_INET,SOCK_DGRAM,0);
if(s==INVALID_SOCKET)
{
AfxMessageBox("建立广播SOCKET 失败!");
return FALSE;
}
BOOL boptval=TRUE;
if(setsockopt (s,SOL_SOCKET,SO_BROADCAST, (char *)&boptval,sizeof(boptval)))
{
AfxMessageBox("setsockopt error ");
::closesocket(s);
return FALSE;
}
struct sockaddr_in ds;//服务器主机地址
ds.sin_family=AF_INET;
ds.sin_port=::htons(u_short(g_lBordCastPortRc));
ds.sin_addr.S_un.S_addr=INADDR_BROADCAST;
FD_SET fd = {1, s};
TIMEVAL tv = {0, 200};//200毫秒钟延迟
//设置发送超时
if(SOCKET_ERROR ==::select(0, NULL, &fd, NULL, &tv))
{
::closesocket(s);
return FALSE;
}
int ret;
ret=sendto(s,(const char *)lpData,nSize,0,(SOCKADDR *)&ds,sizeof(ds));
if(ret==SOCKET_ERROR)
{
AfxMessageBox("sendto err");
::closesocket(s);
return FALSE;
}
::closesocket(s);
return TRUE;
}
编译时出现如下错误:
ServerDlg.obj : error LNK2001: unresolved external symbol "public: int __thiscall CServerDlg::g_BCTSendTo(void *,int)" (?g_BCTSendTo@CServerDlg@@QAEHPAXH@Z)
Debug/Server.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
不知这是什么原因,我已经把ws2_32.lib加上了。请各位帮忙!!!