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,而不是其他的東西?
uj5u.com熱心網友回復:
recvfrom() 函式中有個SOCKADDR結構體,里面有IP/PORTuj5u.com熱心網友回復:
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演算法。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/64018.html
標籤:網絡編程
上一篇:MFC程式系結地址失敗?
下一篇:BHO插件
