我记得是有一个这样的函数,记不清了。以太网本身就是广播的。如果要编程的话,只需设定socket的几个参数。用setsockopt函数,设置SO_BROADCAST,就可以了。
解决方案 »
- error C2664: cannot convert parameter 3 from 'char [20]' to 'LP
- MFC中如何同时显示3幅图像
- 关于QQ08、09、10版本密码框的问题
- CString 最大支持存储多少个字符 ,我在其中存储了1480个字符是没问题,但要是在多存几个就会出错
- 急!!!关于GetXXXDirectory()的问题请教?
- 哪位有经验告诉我VC项目收费标准
- 窗口句柄能不能跨进程使用!?
- CAsyncSocket中Create失败,高分求原因!!
- 关于COMBO BOX
- 定制WebBrowser: MSDN的driller例子为什么IDispatch::Invoke没有收到DISPID_AMBIENT_DLCONTROL ?
- 在VC中,打破系统RING0级限制,让RING3级的应用程序执行光盘读取的INT13功能!这已经是在CSDN多天没有得到解决的问题了
- 怎样在制定目录下删除一个已知文件名的文件?
gethostname
gethostbyname
//caIP 如为空则取本机的
//如为某台机 如 "server","www.163.net" 则在其中返回相应的IP
BOOL GetIP(LPSTR caIP)
{
LPHOSTENT lpHost;
struct sockaddr_in saDest;
// Lookup host
memset(&saDest,0,sizeof(sockaddr_in));
lpHost = gethostbyname(caIP);
if (lpHost == NULL)
{
return FALSE;
}
// Setup destination socket address
saDest.sin_addr.s_addr = *((u_long FAR *) (lpHost->h_addr));
strcpy(caIP,inet_ntoa(saDest.sin_addr));
return TRUE;
}
调用:
WSAStartup(...);
TCHAR caBuf[256]={0};
GetIP(caBuf);//caBuf中返回本机的
strcpy(caBuf,"www.163.net");
GetIP(caBuf);//caBuf中返回返回的是163.net的IP。
WSACleanup();