[問題] 用VC去broadcast一組16進位數字
開發平台(Platform):VC++
VC++
問題(Question):
如何broadcast一組16進位資料
餵入的資料(Input):
0xbb0000dd
預期的正確結果(Expected Output):
用wireshark可以看到Data部份是4byte,然後在16進位部份
會看到最後4byte是 bb 00 00 dd
錯誤結果(Wrong Output):
可以廣播、但最後4byte不正確
程式碼(Code):
int _tmain(int argc, _TCHAR* argv[])
{
if(argc < 2)
{
std::cout << "Error in Syntax: UDPServer.exe <port no> <msg>";
return 0;
}
int portno = ::_wtoi(argv[1]);
USES_CONVERSION;
// char *p = W2A(argv[2]);
WORD w = MAKEWORD(1,1);
WSADATA wsadata;
::WSAStartup(w, &wsadata);
SOCKET s = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP);
if(s == -1)
{
std::cout << "Error in creating socket";
return 0;
}
char opt = 1;
setsockopt(s, SOL_SOCKET, SO_BROADCAST, (char*)&opt, sizeof(char));
SOCKADDR_IN brdcastaddr;
memset(&brdcastaddr,0, sizeof(brdcastaddr));
brdcastaddr.sin_family = AF_INET;
brdcastaddr.sin_port = htons(portno);
brdcastaddr.sin_addr.s_addr = INADDR_BROADCAST;
int len = sizeof(brdcastaddr);
// Byte[] msg = {0xbb,0x00,0x00,0xdd};
char sbuf[1024];
memset(sbuf,0,1024);
sprintf_s(sbuf,8,"%1x%1x%1x%1x",(unsigned char)0xba,(unsigned
char)0x00,(unsigned char)0x00,(unsigned char)0xba);
printf("sbuf data:%x,%x,%x,%x\n",sbuf[0],sbuf[1],sbuf[2],sbuf[3]);
std::cout << "sbuf len:\n"<<strlen(sbuf);
int ret = sendto(s, sbuf, strlen(sbuf), 0, (sockaddr*)&brdcastaddr, len);
//int ret = sendto(s, message, strlen(message), 0, (sockaddr*)&brdcastaddr,
len);
if(ret < 0)
{
std::cout << "Error broadcasting to the clients";
}
else if(ret < strlen(sbuf))
{
std::cout << "Not all data broadcasted to the clients";
}
else
{
std::cout << "Broadcasting is done";
}
::closesocket(s);
return 0;
}
補充說明(Supplement):
此程式是在網路上撈到的,廣播部份是ok的,只是我一直無法將16進位
數字正確的廣播出去
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.163.2.22
※ 編輯: cutem 來自: 118.163.2.22 (01/13 18:54)
※ 編輯: cutem 來自: 118.163.2.22 (01/13 18:55)
推
01/13 20:32, , 1F
01/13 20:32, 1F
→
01/13 20:32, , 2F
01/13 20:32, 2F
→
01/14 10:18, , 3F
01/14 10:18, 3F
→
01/14 10:20, , 4F
01/14 10:20, 4F
→
01/14 10:21, , 5F
01/14 10:21, 5F
→
01/14 10:21, , 6F
01/14 10:21, 6F
→
01/14 10:22, , 7F
01/14 10:22, 7F
→
01/14 10:22, , 8F
01/14 10:22, 8F
推
01/14 13:25, , 9F
01/14 13:25, 9F
→
01/14 13:26, , 10F
01/14 13:26, 10F
→
01/14 13:27, , 11F
01/14 13:27, 11F
→
01/14 13:46, , 12F
01/14 13:46, 12F
→
01/14 14:48, , 13F
01/14 14:48, 13F
→
01/14 14:49, , 14F
01/14 14:49, 14F
→
01/14 15:03, , 15F
01/14 15:03, 15F
→
01/14 15:30, , 16F
01/14 15:30, 16F
推
01/14 17:11, , 17F
01/14 17:11, 17F
→
01/14 17:12, , 18F
01/14 17:12, 18F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章