#16-05 [PC]謎のソケット
HTTP アクセスを WinSock 経由でするプログラムを Visual C++ で作成中、ハマる。自前で起こした
簡易サーバに接続(port 2345)すると、きちんと受け答えをするのだが、http(80) に接続すると
TTP/1.0 501 Not Implemented
と返ってくる。なんか欠けてるのはまあいいとしても、501 た〜どういうこっちゃ。謎。
原因判明。なぜか文字列の長さが先頭に入っている。しかし、どうすりゃいいんだ(悲)。
なんとかひととおり完成。根本的な勘違いは、相手は MFC アプリではない(UNIX だぜ)のに CArchive を使っていたことだった。接続したあとは UNIX と同じだった。わかってしまえば簡単だ。しかし禁断の blocking mode で動かしているので最終的にはマルチスレッド化して non blocking mode にしなければならない。先は長そう…。
でもちょっとだけ C++ と MFC がわかった気がする。めでたい(のか?)。