68user's page 掲示板

Prev< No. 819〜824> Next  [最新発言に戻る] [過去ログ一覧]
No. 819 # かりり 2000/03/24 (金) 07:32:04
>こてつさん
DVDとCD-RWくっついてるやつは
性能的にみても,別々に買ったほうが安いので
辞めといたほうがよろしいかと。

>68user様
自作機で新マシン作りました。ハード関係
前より詳しくなりましたよ。CGIは相変わらずですけど。
奥深いですね。自分で組むと全く動かないです(w

No. 820 # Yuuki [URL] 2000/03/24 (金) 09:38:40
> あと、Windows+perl を使うときの参考ということでリンクを
> 張りましたが、よいですか?>Yuuki さん
はい。大丈夫です。

No. 821 # 68user 2000/03/25 (土) 07:13:21
> はい。大丈夫です。
了解です。

> 自分で組むと全く動かないです(w
CGI ってのはデバッグしにくい環境なので、いろいろと
がんばってみて下さい。

いろいろとありまして、転載についての説明を
    http://X68000.startshop.co.jp/~68user/
に加えました。ご一読下さい。

予告通り、4月中旬まで掲示板は閉めます。ではまた。

No. 822 # ftptransのforkのところをselectで書くと [E-mail] 2000/04/18 (火) 10:13:19
68user様
突然掲示板に書き込む無礼をお許しください。
私はネットワークの勉強をし始めたばかりの薩摩という者です。
こちらのページは大変奥深く、いつきても感動してしまいます。

ところで、今回意を決して掲示板に書き込むことに決めたのは、
ftptransのforkの部分を4引数selectを用いたらどうなるかを
知りたかったためです。

自分で考えてみたのですが、ソースが汚くなってしまい、
もし68user様ならどのように書かれるのか気になって
しまったのです。本当ならこういうソースはメール等で
お送りすべきとは思うのですが、こちらの方でするように
とありましたので、いかに書きます。なお、ftptrans内で
用いられているサブルーチンはそのまま使わせて頂きました。

if ($passive){
    &client_work(DATA,$data_connection_host,$data_connection_port);
}

$rin = &set_bits(COMMAND,DATA,DATA_WAITING);

while(1){
    $ret = select($rout=$rin,undef,undef,undef);

    if(fileno(COMMAND) && vec($rout,fileno(COMMAND),1)){
        $ret = &read_response;
        if ( $ret =~ m/^5/ ){
            print STDERR $ret;
            close(DATA);
            close(DATA_WAITING);
            exit;
        }elsif( $ret =~ m/^1/ ){
            if ($mode eq put){
                open(IN,$infile) || die "$infile: $!";
                while (<IN>){
                 print DATA $_;
                }
                close(IN);
            }
        }elsif( $ret =~ m/^2/ ){
            close(DATA);
        }
    }elsif(fileno(DATA_WAITING) && vec($rout,fileno(DATA_WAITING),1)){
        accept(DATA,DATA_WAITING);
        $rin = &set_bits(COMMAND,DATA,DATA_WAITING);
        close(DATA_WAITING);
    }elsif(fileno(DATA) && vec($rout,fileno(DATA),1)){
        open(OUT,">$outfile") || die "$outfile: $!";
        print OUT <DATA>;
        close(OUT);
        close(DATA);
        exit;
    }
}

sub set_bits {
    @sockets = @_;

    $rin="";
    foreach $sock (@sockets){
        if(fileno($sock)){
            vec($rin,fileno($sock),1)=1;
        }
    }
         return $rin;
}

sub to_bin {
    return unpack "B*",$_[0];
}

以上です。投稿が非常に長くなってしまいましたが、
気付いた点がありましたら御指摘いただけると幸いです。
また、68user様がかかれた物も拝見できましたら
ありがたいのですが。

以上、よろしくお願いします。

No. 823 # 薩摩 [E-mail] 2000/04/18 (火) 11:31:09
ごめんなさい。下の投稿をしたのは僕です。
名前が抜けていました。どうも削除はできないようなので、
もう一度投稿しました。
本当にごめんなさい。

No. 824 # へにか [URL] 2000/04/18 (火) 21:52:16
どうも、おひさしぶりです。再開おめでとうございます。
散々アドバイス頂いて、スクリプトも頂いて、そのおかげでなんとか
perl proxyを作れました。本当にどうもありがとうございます!
sysreadの返値がundefかどうかを判定するところではまってました。

これでやっと当初の目的(漢字変換および80桁で折り返す、ヘブライ語
のテキストをiso-8859-8-iからiso-8859-8)に取り掛かれます・・・

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