68user's page 掲示板

Prev< No. 561〜568> Next  [最新発言に戻る] [過去ログ一覧]
No. 561 # NET放浪人 1999/11/26 (金) 17:44
68USERさんの中で最も得意なプログラミング言語はなんですか?

No. 562 # 68user 1999/11/26 (金) 22:24
elisp です。

…ウソです。perl か C ですけど、人に誇れるほどの
レベルじゃないです。精進せねば。

No. 563 # ムチなチュボ〜 1999/11/28 (日) 00:50
色々ありがとうございました。

> 227だけみたい
たしかに一番上の桁だけ見ろってRFCに書いてありました。

perlて俺のような無知な初心者にも優しい言語ですね!
構文規則が緩いっていうんですか、括弧とか適当でいいし。
とりあえず構文と関数のリファレンスさえあればなんとなく
出来てしまう。ありがたいことです。
まあ…そのおかげかperl使いな人も俺のような駄目パーラから
超スゴイ人まで腐るほど沢山居るらしくてperlなんか今更
「多少」使えても何の自慢にもならないみたいなんですが…。

でもでもこれからもperlで遊ぶぜえ〜。
じゃあさよならあ〜。

No. 564 # 日向 1999/11/29 (月) 12:58
以前にPOSTに関して質問した者です。遅いレスですが…(^^;
どうやら、ソケットに送るPOST〜$messageは、
個別に送った場合、途中の\r\nにHTTPDが反応してしまうようです。
なので、$sendとか、適当な変数に全部繋げて代入し、
print SOCKET $send;
としなければならないようです。
HTTP/1.0を指定し、更にこの方法でやってみた所、POSTが成功しました。
ちなみに、HTTPバージョンを省略した場合は
HTTP/1.1とみなされるみたいです。(全部そうとは限らない…かな?)

No. 565 # 68user 1999/11/29 (月) 22:46
> HTTPバージョンを省略した場合は HTTP/1.1とみなされるみたいです。
省略すると HTTP/0.9 になります。0.9 では GET 以外使えませんし、
ヘッダも送れません。例えば
    GET /~foo/index.html
を送った時点で、サーバからレスポンスが返ってきます。なので、

> 途中の\r\nにHTTPDが反応してしまうようです。
これはそういうことじゃないでしょうか?

なお、HTTP 0.9 で
    POST /~foo/index.html
などとしようとすると、405 Method Not Allowed になるはずです。

No. 566 # 68user 1999/11/29 (月) 23:33
というわけで、
> $sendとか、適当な変数に全部繋げて代入し、
> print SOCKET $send; としなければならない
ということはあり得ないと思いますが、一応試してみたいので
よろしければその掲示板の URL を教えて下さい。

No. 567 # GAT 1999/11/30 (火) 07:38
おはようございます。

ネットワークプログラミングの基礎知識の
C言語でHTTPクライアントを作ってみよう(2)
ではperlと違いヘッダ部分が表示されてますよね?
あれを本体部だけ表示するようにするにはどうしたらいいんでしょう?
色々やってみましたがどうも上手くいかなくて…
「UNIXの場合」はfgets関数をソケット読み出しにも使えますけど
某Windowsは勝手が違うんです。。
# どーみてもUNIXの方がやりやすい
どんな感じかというのがhttp://www.nakka.com/inet/httpc.html
赤系の色で
「/* サーバからデータを受信する処理 */」
とか書かれてる辺りです。
なんとなく見るとやりにくいのがわかるかと^^;;
どうすればいいでしょうか?
思いついたのでいいですからレスください。
どうもアイデアが・・・・

No. 568 # 68user 1999/11/30 (火) 14:25
    while (1){
        char buf[BUF_LEN];
        int read_size;
        static int body_flg = 0;
        char *p;

        read_size = read(s,buf,BUF_LEN);
        if ( read_size > 0 ){
            if ( body_flg ){
                p = buf;
            } else if ( p = strstr(buf,"\r\n\r\n") ){ /* 空行はあるか? */
                p+=4; /* \r\n\r\n の分先に進める */
                read_size -= p-buf; /* サイズ調整 */
                body_flg = 1;
            }
            if ( body_flg ){
                write(1,p,read_size);
            }
        } else {
            break;
        }
    }
こんな感じでどうでしょうか?

Prev< No. 561〜568> Next  [最新発言に戻る] [過去ログ一覧]