int _BROAD(int tm,int con,char ADR[16],char MSG[16]) //每隔多少毫秒,發X次,地址多少,發送內容;
{
int i = 0; char *msg; msg = MSG;
BOOL fBroadcast = TRUE;
WORD wVersionRequested;
wVersionRequested = MAKEWORD(2, 2); int err;
WSADATA wsaData;
if (ADR == "X")
{
SOCKADDR_IN broad;
bool fb=true;
SOCKET Serv = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);//創建接收套字
setsockopt(Serv, SOL_SOCKET, SO_BROADCAST, (CHAR *)&fb, sizeof(BOOL));
broad.sin_family = AF_INET;
broad.sin_addr.s_addr=
//broad.sin_addr.S_un.S_addr = htonl(INADDR_BROADCAST);
broad.sin_port = htons (5333);
bind(Serv, (SOCKADDR *)&broad, sizeof(broad));
SOCKADDR_IN Sevr;
Sevr.sin_family = AF_INET;
Sevr.sin_addr.s_addr = inet_addr("192.168.1.233");
char g[30];
while (i != con)
{
MessageBox(NULL, TEXT("Xx"), TEXT("GC"), 0);
//sendto(bro, msg, lstrlen(MSG), 0, (SOCKADDR *)&broad, sizeof(BOOL));
sendto(Serv, MSG, err, 0, (SOCKADDR *) &broad, sizeof(broad));
//i++;
//MessageBox(NULL, TEXT("發送廣播"), TEXT("GC"), 0);
Sleep(tm);
}
closesocket(Serv);
jsq = false;
}
_endthread();
return 0;
}
main ()
{
_beginthread((void(*)(void*))_BROAD(500, 5, "X", "?"), 0, t);
}
uj5u.com熱心網友回復:
坊間傳聞,需要管理員權限。uj5u.com熱心網友回復:
查看API是否都回傳正確了,其次就是發送的資料包格式是否正確,是否被防火墻等攔截uj5u.com熱心網友回復:
1. if (ADR == "X") ====》 筆誤還是代碼中就是這么寫的?2. bind(Serv, (SOCKADDR *)&broad, sizeof(broad));之前,你都寫了啥玩意兒?讓別人幫你找BUG,好歹代碼也要工整也規范一下吧。
3. 全文中,我沒看到你有發送廣播資料,甚至我都懷疑你bind都錯了,先找一篇UDP通訊的例子代碼,敲一下,編譯運行過了,在來搞這個問題。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/127708.html
標籤:網絡編程
