68user's page 掲示板

Prev< No. 3225〜3255> Next  [最新発言に戻る] [過去ログ一覧]
No. 3225 # ちゃお 2003/05/18 (日) 03:39:04
初めまして。
突然ですがおききしたいことがあります。
貴HP内にてsocketを使ったHTTPクライアントを作るプログラムを拝見させていただき、独立した環境で同じように組んで実行しましたがホストが存在しないとかえってきました。
これは至極当然なので、$iaddr(指定アドレス)に自分自身(127.0.0.1)を指定して実行しました。

ちなみにANHTTPDが動いています。
perl5でライブラリ上でもsocketは確認しています。

結果はエラーコード500を返すだけでなにも起こりませんでした。
アクセスログもやはりエラーコードは500でした。

自分自身へ試してみて異常がないことを確認できなければ外部に向かって使用するのにはかなり抵抗があったため試してみたことでした。
socketを使っての自分自身へのアクセスはできないのでしょうか?

お暇なときでよろしいですのでお返事よろしくおねがいいたします。

No. 3226 # Netboy 2003/05/18 (日) 11:01:45
>何かよい用語はないでしょうか。

プロセス制御,プロセスの多重化,プロセスの生成と複写,
マルチプロセス,同時実行プロセス

等は如何でしょう.

No. 3227 # 68user 2003/05/19 (月) 04:34:26
>>3225 ちゃお
> 結果はエラーコード500を返すだけでなにも起こりませんでした。
> アクセスログもやはりエラーコードは500でした。
ということは TCP/IP 的には正常に通信できているが、HTTP リクエスト
で送信している内容がよくない、という状況と考えます。

あとは
    - 実行したのが http-client.pl なのか、http-client-2.pl なのか。
    - http-client-2.pl であれば、URL に何と入力したのか。
        その URL をブラウザで見ると正しく表示されるのか。
    - そもそも telnet で成功したのか。その場合は何とタイプしたのか。
と情報がないと何とも言えません。

>>3226 Netboy
apache 起動の件、ありがとうございました。

> プロセス制御,プロセスの多重化,プロセスの生成と複写,
> マルチプロセス,同時実行プロセス
いえ、どういう手法で多重化しているか (プロセス/スレッド/select) は
別として、「見ため同時に動いていること」を何と表記すればよいかが
よくわからないのです。

No. 3228 # ちゃお 2003/05/19 (月) 18:25:34
>>3227 68user
お返事ありがとうございます。
そして言葉足らず失礼いたしました。

>実行したのが http-client.pl なのか、http-client-2.pl なのか
実行したプログラムはhttp-client.plのほうです。

>telnet で成功したのか
telnetでは127.0.0.1にポート80で接続できました。
でもそのあとのheloコマンドでは501を返してきました。

またメインマシンがwinMEなので最初の接続(open)はDOSプロンプトからできません。

>URL をブラウザで見ると正しく表示されるのか
ブラウザではエラー500を返してきます。

またURLには127.0.0.1/root/http_client.cgiとしています。
拡張子はcgiにしています。

よろしくおねがいします。

No. 3229 # ちゃお 2003/05/19 (月) 18:30:28
連続ですいません。
さっきかきこんだあとおもうところがあって拡張子plで試してみました。
plは設定(http.conf)に登録していないのでいつも使っていませんでした。
もちろん今回も実行したあとはブラウザには表示されませんでした。

しかし、アクセスログには200が残っていました。

これって成功したということでいいのでしょうか?

No. 3230 # 68user 2003/05/20 (火) 22:16:24
>>3228 ちゃお
> でもそのあとのheloコマンドでは501を返してきました。
わたしの知る限り HELO と言えば SMTP です。そして
ポート 80 の先にいるのは HTTP サーバです。HTTP サーバは
SMTP を解さないので、エラーになるでしょう。

http-client.pl というのは、要はブラウザの代わりをする
プログラムなのですが、その辺は理解されていますか?

> またURLには127.0.0.1/root/http_client.cgiとしています。
あなたがブラウザで普通に見られるような URL を試しましょう。
      http://127.0.0.1/
で何かコンテンツが表示されるなら、まずそれで試すべきです。

とりあえず
    http://x68000.startshop.co.jp/~68user/net/http-1.html
を読んで、実際に試してみてください。

No. 3231 # じゅじゅ [E-mail] 2003/05/21 (水) 19:28:46
c言語でFTPクライアントのプログラムを組んでいます。
プロトコルやソースは大変参考にさせていただいています。

環境は、TurboLinux 8 serverです。

FTPクライアントのプログラムなのですが、ファイルの転送などは問題なく動作しているのですが、ディレクトリ単位の転送の記述部分がわかりません。何度かコマンドのデバッグモードで試して、RFCなどの記述も呼んでいるのですが。参考になるページがあるのでしたら、教えてください。
また、ファイルかディレクトリかを区別する方法もあればと思い、ご教授よろしくお願いいたします。

No. 3232 # 68user 2003/05/21 (水) 23:01:09
>>3231 じゅじゅ
> ディレクトリ単位の転送
おそらく、ディレクトリを LIST or NLST して、一つ一つ RETR する
しかないです。

> ファイルかディレクトリかを区別する方法
ブラウザで anonymous ftp サイトに接続した場合などは、LIST の結果が
drwxr-xr-x ならディレクトリ、とするのが一般的だと思います。もっと
きっちりやるなら、CWD で移動できたらディレクトリとみなす、とか。

基本的に、ftp は UNIX に依存したくなかったため、この辺はあえて
決めてないのではないかと思っています。

もしディレクトリを判別できるようにするなら、名前付きパイプは?
ソケットは? デバイスファイルは? door は? ということになり、
結局 ls の結果をそのまま送る方がよい、と判断されたのではない
でしょうか (そしてわたしは、この判断は誤りであると思っています)。

No. 3233 # じゅじゅ [E-mail] 2003/05/22 (木) 15:28:39
簡単なことかもしれませんが、LISTやNLSTをし、続けてファイルの総数やディレクトリの中にあるファイル名を取得することはできるのでしょうか?それらのデータを取得する記述と、また、
>drwxr-xr-x ならディレクトリを取得する
記述が分かりません。
ご教授よろしくお願いいたします。

No. 3234 # 68user 2003/05/23 (金) 02:21:11
>>3233 じゅじゅ
LIST すれば
    drwxr-xr-x 9 user group 512 Apr 28 2001 dir1
    drwxr-xr-x 10 user group 512 Jul 30 2000 dir2
    -rw-r--r-- 1 user group 122 Mar 29 2000 file
などという結果が返ってくるので、行頭が d である
dir1 と dir2 がディレクトリであることがわかります。

さらに LIST dir1 とすれば dir1 の下のファイル・
ディレクトリ一覧が返ってきます。

No. 3235 # ちゃお 2003/05/24 (土) 04:43:48
>>3230 68user
前回はちんぷんかんぷんな質問失礼いたしました。
現状ちゃおのマシンにはapacheがインストールされています。
そしてrootにはhtdocsが指定されています。
さらにhtdocsの中にindex.htmlがあります。

まずはtelnetからやりなおしてみました。
コマンドプロンプトから以下のように入力しました。

telnet 127.0.0.1 80
接続成功
GET /index.html HTTP/1.1
HOST:127.0.0.1
Content-type:text/html

ソース取得成功してます。

次にコマンドプロンプトからperlを実行します。
(もちろんperlのあるディレクトリには移動済みで、他のHTMLソースを吐き出させることにも成功しています)

c:\>perl http_client.pl

このときはなにも表示されません。
しかしコードは200を返します。

このときの結果は同じものではないのですか?

>http-client.pl というのは、要はブラウザの代わりをする
プログラムなのですが、その辺は理解されていますか?

つまり$iaddrで指定したアドレスにあるソースを受け取って表示する、
dos上で実行したらbody部分がそのままdosプロンプトに表示されるということでいいんですよね???
それともこのプログラムにさらに引数を与えなければいけないのでしょうか?

長文になってしまい失礼いたしました。
またお時間のあるときにお返事いただければ幸いです。

No. 3236 # かんすけ [E-mail] 2003/05/24 (土) 23:49:04
Makefileでのライブラリの定義について

はじめまして。solaris初心者のかんすけです。
環境はsparc-solaris8です。
Makefileを作成してみたのですが、自分で作成したライブラリファイルをCCのところでうまく定義できません。実行すると「ファイルが見つかりません」とエラーが表示されます。
この場合、まず何を疑えば良いのでしょうか?
正しいMakefileでのライブラリの定義の仕方を教えてください。
また良いサンプルファイルのURL等ありましたら、紹介してください。
よろしくお願いします。

No. 3237 # ちゃお 2003/05/27 (火) 01:28:02
今までの数々の質問大変失礼いたしました。
色々いじっているうちに何故か成功いたしました。
今までありがとうございました。
これからもがんばってください。

No. 3238 # 68user 2003/05/30 (金) 00:19:49
>>3236 かんすけ
デフォルトルールや特殊変数などを全く活用してませんが、

      main: main.o hoge.a
                $(CC) -o $@ $>
      hoge.a: hoge.a(a.o) hoge.a(b.o)
                $(AR) ru $@ $>

とりあえずこんな感じで実現することは可能です。

No. 3239 # 68user 2003/05/30 (金) 04:40:51
OpenSSL による https クライアントをちょっとだけ
バージョンアップしました (解説は更新なし)。
    http://x68000.startshop.co.jp/~68user/net/ssl.html

変更点はこちら。
    http://x68000.startshop.co.jp/~68user/cgi-bin/cvsweb.cgi/public_html/net/sample/https-client.c

しかし SSL は未だによくわからん…。

No. 3240 # 68user 2003/05/31 (土) 21:05:20
苦節 3日。やっと rootCA を組み込む方法がわかった。
忘れないうちにメモメモ。
        ctx = SSL_CTX_new(ssl_method());
        SSL_CTX_load_verify_locations(ctx, "mod_ssl-2.8.9-1.3.26/pkg.sslcfg/ca-bundle.crt", NULL);

No. 3241 # ひろ 2003/06/05 (木) 19:56:39
皆様こんにちは。

僕はサーバースペースを借りてHPを作ってます。

いきなりの質問で失礼と存じますが…

asciiart.cgiの設置方法を教えていただけないでしょうか?

一応、↑検索をかけてみたのですが見当たりませんでした。

                                    パーミッション
asciiart.cgi    755
environment.pl   644(試しに755)

…だけではダメなのでしょうか?

ヨロシクお願いします。

No. 3242 # 68user 2003/06/05 (木) 23:52:06
>>3241 ひろ
> asciiart.cgiの設置方法を教えていただけないでしょうか?
      http://x68000.startshop.co.jp/~68user/unix/pickup?netpbm
に含まれている giftopnm、ppmtopgm などのコマンド群と、
HTTP クライアントである httptalker.pl が必要です。

netpbm はフリーで配布されています。httptalker.pl はわたしが
作ったものですが、wget や fetch などのフリーなダウンローダで
代用可能です。

申し訳ありませんが、解説しはじめると長くなるので、これ以上の
詳細な解説はご勘弁ください。

関係ないですけど、テーブルアートというのがあります。こっちの方が
表現力が高いので、おもしろいかも。
      http://hi.sakura.ne.jp/~okada/table/

No. 3243 # ひろ 2003/06/08 (日) 13:48:14
返答ありがとうございました。

難しいので諦めます。。

asciiart.cgiを設置されてるサイトって有るんですかね?(謎)

因みにasciiart.cgi検索かけても見つかりませんでした。(笑)

No. 3244 # 68user 2003/06/09 (月) 06:08:14
>>3243 ひろ
> asciiart.cgiを設置されてるサイトって有るんですかね?(謎)
ないと思います。うちの CGI プログラム群は、配付しているのではなく
ただ単にソースを公開しているだけなので、わたし以外の人にとっては
設置しづらいでしょう。

No. 3245 # bebe 2003/06/10 (火) 18:36:12
「ls」を入力すると、カレントディレクトリのファイルやディレクトリが表示されますが、ファイルは表示させずにディレクトリだけを表示させることは出来ますか?
ls -d でやってみてもダメでした。

No. 3246 # 68user 2003/06/10 (火) 19:53:53
>>3245 bebe
-d は引数にディレクトリを指定した場合、そのディレクトリの
下でなく、ディレクトリそのものの情報を表示するオプションです。
というわけで、
    % ls | grep ^d
    % find . -type d -maxdepth 1
    % find . -type d -maxdepth 1 -ls
などなど。

No. 3247 # 68user 2003/06/10 (火) 20:04:29
>>3246 68user
> ls | grep ^d
ls -l | grep ^d の間違いでした。

No. 3248 # 68user 2003/06/14 (土) 22:03:14
ネットワークプログラミングの基礎知識
      http://x68000.startshop.co.jp/~68user/net/
に、
      暗号化のお話 (1) - 共通鍵暗号方式
            http://x68000.startshop.co.jp/~68user/net/crypt-1.html
      SSL/TLS でアクセスしてみよう (1) (2)
            http://x68000.startshop.co.jp/~68user/net/ssl-1.html
            http://x68000.startshop.co.jp/~68user/net/ssl-2.html
を追加しました。説明が中途半端ですが、ご容赦を。

cvsweb はこちら
    http://x68000.startshop.co.jp/~68user/cgi-bin/cvsweb.cgi/public_html/net/org/?sortby=date

No. 3249 # のぐけん。 2003/06/16 (月) 17:54:10
はじめまして。
ここのページでかなり勉強させてもらっています。
いつの間にかDSNクライアント作成講座もできてるみたい
なので、時間があったら読ませてもらいます。

ところで、DNSを使ってみよう でsend関数がでてきましたが、
あれはTCPでは使えないのでしょうか?
UDPはコネクションレス型で、TCPはコネクション型なのは解ってますが・・・。
もし使える方法があれば教えてください。

No. 3250 # terapad 2003/06/17 (火) 11:14:15
はじめまして、terapadと申します。

いくつかのプログラムからarコマンドを用いて、ライブラリを作成するのですが、
スタティックリンク版とダイナミックリンク版を作成したいのです。

ar -r test.a aaa.o bbb.o ccc.o

現在、上記のようなコマンドを用いているのですが、
これはスタティックリンクになるのでしょうか?
ダイナミックリンク版を作成するためには、
arコマンドに何かオプションが必要なのでしょうか?

何も分からず恐縮ですが、ご教授お願いします。

No. 3251 # 68user 2003/06/17 (火) 12:52:12
>>3249 のぐけん。
> ところで、DNSを使ってみよう でsend関数がでてきましたが、
> あれはTCPでは使えないのでしょうか?
        send(SOCKET, $data, 0);
で使えます。

>>3250 terapad
> これはスタティックリンクになるのでしょうか?
そうです。

> ダイナミックリンク版を作成するためには、
こちらをどうぞ。
      http://www.jp.FreeBSD.org/QandA/HTML/401.html

No. 3252 # のぐけん。 2003/06/17 (火) 17:59:41
すいません。
send(SOCKET, $data, 0);
の形は、すでにSOCKETがつながっている時ですよね?
send(SOCK, MSG, 0, TO);
の形では無理でしょうか?

No. 3253 # terapad 2003/06/17 (火) 18:24:26
お返事ありがとうございます。

早速、サンプルプログラムを用意してやってみたところ
cc -fpic -o libshared.SO -c shared.c
は正常に終了しlibshared.SOが作成されました。

次の
cc -shared -Wl, -soname, libshared.so.1 -o libshared.so.1 libshared.SO
のところでは下記のようなエラーが出ます。
cc: 1501-218 file libshared.so.1 contains an incorrect file suffix
cc: 1501-228 input file libshared.so.1 not found
cc: 1501-218 file libshared.SO contains an incorrect file suffix

どのように回避したら良いでしょうか?

No. 3254 # terapad 2003/06/17 (火) 18:36:13
すみません。もう一度コマンドコピーして実行してみたところ、
cc -shared -Wl,-soname,libshared.so.1 -o libshared.so.1 libshared.so
ld: 0706-012 -h フラグが認識できません。
ld: 0706-012 -a フラグが認識できません。
ld: 0706-005 ファイルが見つからないか、オープンできません: libshared.so.1
                ld:open(): このパス名にはファイルまたはディレクトリが存在しません。

このようなメッセージに変わりました。
でも、わかりませんが・・・。

No. 3255 # 68user 2003/06/17 (火) 20:35:29
>>3252 のぐけん。
> send(SOCK, MSG, 0, TO);
> の形では無理でしょうか?
は TCP では無理だと思います。connect しないと 3way
handshake してくれないです。

ちなみに、ご存知かもしれませんが、UDP では
      - socket && connect && send(SOCKET, $data, 0);
      - socket && send(SOCKET, $data, TO);
のいずれも可能です。

>>3254 terapad
      http://www.jp.FreeBSD.org/QandA/HTML/401.html
gcc を使っている場合のやり方です。gcc を使わない
のであれば、お使いの cc のマニュアルを読みましょう。

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