サーバーからデータを文字列ストリームとして取得するtcpクライアントがあります。サーバーはベクトル (フロート) を 1 つの大きな文字列にパックし、これらをフラグで区切ります。私のクライアントでは、これらのフラグを再び分離し、文字列配列に格納します。したがって、各「トークン」は 1 つのベクトルである必要があります。しかし、私はそれを解析することはできません。私が得た文字列は非常に奇妙に見えます。見てください:
繰り返しますが、これを解析して 3 つの float に戻すだけです。サーバー側では、次のように送信されます。
data.addFlag(11);
data << pelvis.x() << pelvis.y() << pelvis.z();
data.addFlag(12);
data << rhip.x() << rhip.y() << rhip.z();
演算子は次のようにオーバーロードされます
operator<<(const float& f)
{
m_buf.append(reinterpret_cast<const char*>(&f), sizeof(f));
return *this;
}
編集:
1 つのトークンは次のようになります。
float first = *reinterpret_cast<float*>(value)
私は例外を取得します。