C++で書いたソケット通信をするアプリがどうしても落ちる。
安定して動作が必要だったのでバッファのチェックからスタックまでくまなくチェックしたのに、なかなか悪いところが見つからない。
あきらめて一晩置いてもう一度みたらすぐに判明したよ・・。
unsigned char recv_buffer[sizeof(unsigned char)];
unsigned char method_size;
recv_data(&method_size,1);
recv_data(byRecvBuffer,method_size);
なんか1バイトで表されているデータの長さを格納するバッファをsizeof(char)=256だと訳のわからない勘違いしてしまったようだ・・・。
一度勘違いすると同じ人間ではなかなか気づかないもだなーと思いました。
こんな明らかな間違い人の書いたのだったらすぐ発見するのに。
実際にはsizeof(char)=1。
RFC読みながら実装してたら間違えた(いいわけ)