68user's page 掲示板

Prev< No. 2849〜2856> Next  [最新発言に戻る] [過去ログ一覧]
No. 2849 # 紅絹 2002/07/05 (金) 16:20:07
ご回答ありがとうございます。
ファイル転送についてですが、GETとアップロードの両方おこなうものを作りたいと思っています。説明不足で申し訳ありませんでした。

No. 2850 # しっぽ 2002/07/08 (月) 11:26:17
はじめまして、いつもお世話になっております

PerlでTCPのSYNを一度だけ投げて任意の時間内にSYN ACKが返ってこなかったら
タイムアウト処理を、と言ったことをしたいのですが、以下のプログラムでは
うまく行きませんでした。TCPdumpで見てたところ、何回もSYNを投げなおした後
数分後にやっとエラーメッセージを表示してくれます。

よくよく見てみたところ、リトライの間隔がTimeOutの設定に関係なく
最初は3秒、次が6秒、12,24,48秒となっていて最後に96秒待った後
エラーメッセージを出す動きをしていました。

何かアドバイスなど有りましたらよろしくお願いいたします
なお、PerlのVersionはThis is perl, v5.6.1 built for i386-linux-thread-multi です

    $socket = new IO::Socket::INET (
        PeerAddr => "$address",
        PeerPort => "$port",
        Proto => 'tcp',
        TimeOut => 10 );

    unless ($socket) {
        print STDERR "Connection Error at $date\n";
        close($socket);
        }

No. 2851 # 68user 2002/07/08 (月) 11:53:51
>>2850 しっぽ
> PerlでTCPのSYNを一度だけ投げて任意の時間内にSYN ACKが返ってこなかったら
その辺を管理するのは OS の TCP スタックなので、プログラム側
からはどうにもなりません。

> よくよく見てみたところ、リトライの間隔がTimeOutの設定に関係なく
> 最初は3秒、次が6秒、12,24,48秒となっていて最後に96秒待った後
> エラーメッセージを出す動きをしていました。
これも、そういうものです。

Solaris だとタイムアウトまでの時間を変更できたしますが、その他の
OS では変更できない可能性が高いです。

もし connect 時のタイムアウト処理をしたいという目的ならば、
ノンブロッキングソケットを使いましょう。


>>2847 mattu
> パラメータが正常に送信されていないようなんです。
その判断が間違っているような気がします。そう判断するに至った
根拠が明示されていないので、ただのあてずっぽうですが。

No. 2852 # mattu 2002/07/08 (月) 12:21:48
ご回答ありがとうございます。
別にあてずっぽうではなく、サーバ側でデバックにて確認してみると、渡しているデータが入ってなかったのと、渡されたヘッダ・パラメータがファイルに出力されるようにしており、JAVAで作成したものでしたら正常に出力されるのですが、Cで作成したもので試してみるとヘッダの部分のみ出力されるのでそう思いました。デバック等にはVAJを使用しております。
言葉不足ですみませんでした。

No. 2853 # 68user 2002/07/08 (月) 12:33:13
>>2852 mattu
    - ボディの最後の \r\n は不要 (もし \r\n を付けるなら Content-Length は
        10 であるべき。でも \r\n 付けていいのかな?)
    - リクエストに Content-Type ヘッダは不要
という点を直しても まだボディが渡らないようなら、その C のプログラムが
おかしいんだと思います (てゆーか、Java でうまくいって C でうまくいかない
なら、C の方を疑うべきでしょう)。

詳しくはこちらなど。http://www.studyinghttp.net/headers.html

No. 2854 # シゲ 2002/07/08 (月) 16:24:29
>>2845出来ました。ありがとうございます。

No. 2855 # シド 2002/07/09 (火) 09:45:44
教えてください。
showmountコマンドは、OSのサポートバージョン等が制限されていますか。

showmountコマンドの実行制限が何かありましたら、教えてください。

No. 2856 # mattu 2002/07/09 (火) 14:03:44
ご回答ありがとうございます
Cで作るHTTPクライアントの件ですが、やはりボディが渡りません。
ソースの方を確認しましたが、おかしいと思われる箇所は見つかりませんでした。
環境が原因で渡らないというのはあるんでしょうか?
現在はUNIX上でコンパイル・実行をしてWin2000上のVAJにつないでいるんですが、関係あるのでしょうか?
また、ボディの書き方で何か注意しとくべきことありますでしょうか?
よろしくお願いします。

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