Re: [問題] 用VC去broadcast一組16進位數字

看板C_and_CPP (C/C++)作者 (大少爺)時間12年前 (2014/01/15 12:59), 編輯推噓0(002)
留言2則, 1人參與, 最新討論串2/2 (看更多)
後來在程式設計俱樂部那邊得到了解答、 我附上連結。 http://www.programmer-club.com.tw/ShowSameTitleN/vc/40449.html ※ 引述《cutem (大少爺)》之銘言: : 開發平台(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

01/15 13:21, , 1F
所以這證明了你前面那篇寫的跟實際的不同.
01/15 13:21, 1F

01/15 13:23, , 2F
問問題的方式不對所以大家找不到問題
01/15 13:23, 2F
文章代碼(AID): #1IrXMoDS (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1IrXMoDS (C_and_CPP)