linux下的ioctl改写到windows这边要怎么改

jyxuan94 2018-08-16 03:48:14
 
int iFd;
struct ifreq ifr;

iFd = socket(AF_INET, SOCK_DGRAM, 0);
if (iFd == -1)
{
printf("create socket failed!");
return UBTEDU_RC_SOCKET_NORESOURCE;
}

strcpy(ifr.ifr_name, "wlan0");
if (ioctl(iFd, SIOCGIFBRDADDR, &ifr) < 0) //get ip addr
{
printf("ip ioctl error!");
return UBTEDU_RC_SOCKET_FAILED;
}

linux这边一片空白,然后不是很理解,他是怎么判断广播接收到的是我要的那台机子的ip,而不是其他的东西?
...全文
581 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Eleven 2018-08-20
  • 打赏
  • 举报
回复
recvfrom() 函数中有个SOCKADDR结构体,里面有IP/PORT
sevancheng 2018-08-20
  • 打赏
  • 举报
回复
setsockopt ()支持下列选项。其中“类型”表明optval所指数据的类型。
选项 类型 意义
SO_BROADCAST BOOL 允许套接口传送广播信息。
SO_DEBUG BOOL 记录调试信息。
SO_DONTLINER BOOL 不要因为数据未发送就阻塞关闭操作。设置本选项相当于将SO_LINGER的l_onoff元素置为零。
SO_DONTROUTE BOOL 禁止选径;直接传送。
SO_KEEPALIVE BOOL 发送“保持活动”包。
SO_LINGER struct linger FAR* 如关闭时有未发送数据,则逗留。
SO_OOBINLINE BOOL 在常规数据流中接收带外数据。
SO_RCVBUF int 为接收确定缓冲区大小。
SO_REUSEADDR BOOL 允许套接口和一个已在使用中的地址捆绑(参见bind())。
SO_SNDBUF int 指定发送缓冲区大小。
TCP_NODELAY BOOL 禁止发送合并的Nagle算法。

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧