winsock을 사용하여 소켓을 통해 데이터를 보내려고합니다. 내 데이터 (실제로 char 배열) 일부 0이 포함될 수 있지만 char 0x00 null 문자를 나타내는 및 모든 문자가 종료 문자를 나타내는대로 잘리는 문제가 발생했습니다. 누구든지이 문제를 해결해야하는 방법에 대한 아이디어가 있습니까? 어떤 대안을 사용할 수 있습니까?0x00 문자가있는 C++ 데이터 배열
내가 원하는 것은 정수, 문자 배열 또는 다른 것을 나타낼 수있는 winsock이있는 바이트를 보내는 것입니다. 수신부가 올바르게 읽을 것입니다.하지만이 게시물의 관심사는 아닙니다.
그러나'send' 계열의 함수는 NUL char을 마침표로 사용하지 않습니다. 대신 그들은 보낼 문자 수를받습니다. 그래서 당신의 문제는 단순히 존재하지 않습니다! – rodrigo
그래도 C++ char 배열은 null 문자 다음에 오는 모든 것을 잘라 버릴 것입니다! – user1628526
아니요! 이것은 char 배열이 _strings_으로 보여 질 때만 발생합니다. 함수에 달려 있습니다 (개별 문서를보십시오). 예를 들어'strcpy/strcmp'는 NUL char을 사용하고 반면에'memcpy/memcmp'는 NUL char을 사용합니다. 그리고 분명히, winsock'send' 함수는 바이트 버퍼를 문자열로 취급하지 않습니다. – rodrigo