So zu char habe ich einige Daten, die ich aus Paket umwandeln in binären (Datagramm) zu bespannen,:Konvertieren von Binärdaten in string
std::string Packet::packetToString()
{
//packing to one bitset
std::bitset<208> pak(std::string(std::bitset<2>(type).to_string() + std::bitset<64>(num1).to_string() + std::bitset<64>(num2).to_string() + std::bitset<64>(num3).to_string() + std::bitset<4>(state).to_string() + std::bitset<4>(id).to_string() + "000000"));
std::string temp;
std::bitset<8> tempBitset(0);
for (int i = pak.size() - 1; i >= 0; i--)
{
tempBitset[i % 8] = pak[i];
if (i % 8 == 0)
{
char t = static_cast<char> (tempBitset.to_ulong());
temp.push_back(t);
}
}
return temp;
}
Dann möchte ich diese Zeichenfolge konvertieren Array auf char (in diesem Fall char buffer[26];
) und SendTo("127.0.0.1", 1111, buffer, 26);
es mit schicken Was ist das Problem:
Packet pak1(... data I input ...);
string packet;
packet = pak1.packetToString();
char buffer[26];
strcpy_s(buffer, packet.c_str());
Daten mit diesem Array senden scheint bei 0x00(NULL)
gelöscht werden erscheint. Dies wird durch c_str() verursacht, denke ich. Wie kann ich damit umgehen? :)