分享至
我用Sendto的時候發現它會自動把字串切到\0的地方,\0並不會被傳送,但我想把\0一併送出例如:msg[14] = "Hello World!\0"用wireshark抓封包來看只看到"Hello World!",\0不見了請各位大大幫忙。
已邀請的邦友 {{ invite_list.length }}/5
您可以使用sendto函數的第三個引數傳遞字符串的實際大小,而不是依賴字符串結束的\0來判斷大小。
例如:
char msg[] = "Hello World!\0"; int size = sizeof(msg); // 字符串的實際大小,包括\0 sendto(socket, msg, size, 0, (struct sockaddr *)&dest_addr, sizeof(dest_addr));
這樣可以確保整個字符串包括\0都會被傳送。
IT邦幫忙