68user's page 掲示板

Prev< No. 3307〜3325> Next  [最新発言に戻る] [過去ログ一覧]
No. 3307 # 68user 2003/08/14 (木) 15:44:08
>>3306 SL
> 他サイトにあるスクリプトをソケット通信で実行したいと思って、
> やっているのですが、ブラウザからは実行できるのにソケット通信
> だとできないので
これは index.cgi とは別の問題ですか?

どんなリクエストを送っているかを明らかにしていただくのが早い
んですが、まぁ想像するに Host ヘッダを送ってない、てなところでは
ないかと思いました。

いずれにせよクライアントを作る前に telnet で試してみてください。

No. 3308 # SL 2003/08/14 (木) 18:57:02
>>3307 68user

ご回答ありがとうございます。

> これは index.cgi とは別の問題ですか?

他のサイトにあるスクリプトが実行できないので、自分のところにスクリプトを置いて実験しているだけですので、困っていることはひとつです。

> んですが、まぁ想像するに Host ヘッダを送ってない、てなところ

Hostヘッダというのは送ってないような気がします。68userさんが公開してくださっているソースをそのまま使っただけですので。
ご指摘のhostヘッダの件が問題点のような気がします。

http://www.shop-link.net/tie-up/test/socket4.txt

ソースは上記です。すみませんが見ていただけますか。

宜しくお願い致します。

No. 3309 # 68user 2003/08/14 (木) 19:36:51
>>3308 SL
> ご指摘のhostヘッダの件が問題点のような気がします。
ブラウザで
    http://219.109.215.211/cgi/gp_new.CGI
を見ると not found になるということは、そういうことでしょうね。

http://x68000.startshop.co.jp/~68user/net/http-4.html を見て、
Host ヘッダを追加してみてください。

No. 3310 # SL [E-mail] 2003/08/14 (木) 23:27:04
>>3309 68user

ありがとうございました。
なんとか動くようになりました。

Hostヘッダを追加して、proxyを使用しないようにしました。

本当にありがとうございました。
また何かありましたら宜しくお願い致します(^^;

お礼と言ってはなんですが、メルマガ出してますので、何か宣伝したいことがあったらメールして下さい。<m(_w_)m>

No. 3311 # ken 2003/08/15 (金) 10:58:54
ご返答ありがとうございました。
えっと…結論から言うと、解決しました(^^;

ftpコマンドでもtelnetコマンドでも問題が無かったので、
やはり自分のプログラムに問題があるのだろうと思い、もう一度見直しました。
どうやら、全箇所でレスポンスを受け取ってないのが原因かと思いました。
ぼくは、要所要所でだけ、受け取ったレスポンスを表示させればいいのかと思ってたんですけど、どうやらそれがいけなかったようですね。
それによっていろいろと狂ってきたようです。
レスポンスをすべて表示させたりしたら直りました。
ではでは、ありがとうございましたm(_ _)m

No. 3312 # さんぺい 2003/08/19 (火) 15:57:03
初めて投稿させていただきます。
UNIXはまだ初心者です。
教えていただきたいことなんですが、今Cシェルを作成しています。
その中で処理終了後にメールを送ろうとしているのですがFrom句(差出人)
を任意で変更したいと考えているのですが可能なのでしょうか。
いろいろ調べてみましたがFrom句を変えるようなものはありませんでした。
ご存知のかたがいらっしゃったら教えていただけないでしょうか。
Subjectだけ指定したソースを記載しておきます。
お願いします。
サーバ(username)[1]:/usr/ucb/mail -s "test" test@test.co.jp < test.txt

No. 3313 # 68user 2003/08/19 (火) 18:15:36
>>3312 さんぺい
> /usr/ucb/mail -s "test" test@test.co.jp < test.txt
test.txt に
      From: hoge
      Subject: test
      To: test@test.co.jp

      本文
などとヘッダ類を全部書いて、
      % /usr/ucb/mail -t < test.txt
でいけると思います。

ただ、エラーが発生したときに戻ってくるメールアドレス
(envelope-from) はこれでは書き換わりませんのでご注意を。
もしそれも変更したいなら sendmail を直接呼ぶしかないと
思います。

No. 3314 # mikan [E-mail] 2003/08/21 (木) 10:02:49
初めて投稿させていただきます。
UNIXは学生の時に整った環境で触っていた程度です。

今、職場の方でUNIXにユーザ追加をし、メールユーザを増やそうとしています。
方法としては、
「vipwコマンド」を使用してユーザを追加しました。
ユーザ自体は追加できたのですが、いざメールを使用してみると、パスワード認証エラーがでてはじかれます。
パスワードがおかしいのかと思い、「passwdコマンド」でパスワードを変更してみたのですが結果は同じでした。

他になにか、設定がいるのでしょうか?
ちなみに、「fingerコマンド」を使用して追加したユーザ情報を表示したところ、ユーザは存在すると認識されているようです。
お手数ですが、素人な私にどうかご教示下さい。

No. 3315 # tomtom 2003/08/22 (金) 14:30:33
はじめまして、tomtom といいます。
ソケット通信に興味があり、勉強に励んではや3ヶ月の初心者です。

最近、自分で簡単なクライアントサーバのソケット通信プログラムを
作成してみたのですが、recv関数で受信エラーが発生してしまいます。
メッセージの送信元で、send関数により送信された内容と、
実際にrecv関数で受信した内容を確認してみたところ、きちんと
同じものが受信できているようでした。

そこで、エラー番号から何がおきているのか解析しようとしたのですが、
やり方が間違っているのかエラー番号を何も出力してくれません。

もし、何かお気づきのことがあるようでしたら、
ご指導いただけないでしょうか?

問題の箇所:

if(recv($sock_id, $msg, $MAX_BUFF, 0) eq undef){
                    print "$msg";
    print "errno = $!";
}

No. 3316 # tomotomo 2003/08/22 (金) 16:08:39
度々すみません。
先ほど投稿させていただいたtomtomです。
処理系を書き忘れたので,再度書き込みをさせていただきました。
動かしている処理系は、linuxです。
余談ですが、linux-perlとactive-perlとで、recvやsendなどの
システムコールの処理結果は、異なるのでしょうか?
(NG時undefを返さず、別のものを返す、、など)

クライアントをlinux-perlで、サーバをactive-perl(WinXP)で
起動しおり、サーバの方は、同様のrecv記述で上手く受信できているの
で、なにか関係あるのかな、と素人ながら少し気になりました。

以上、度々失礼しました。

No. 3317 # 68user 2003/08/22 (金) 16:21:46
>>3315 tomtom
> if(recv($sock_id, $msg, $MAX_BUFF, 0) eq undef){
undef かどうかのチェックは、正しくは
    if ( ! defined recv($sock_id, $msg, $MAX_BUFF, 0) ){
です。recv は相手側のアドレス (IP アドレス+ポート番号) を
返すので、それが undef と一致する、と解釈されているのかも
しれません。

# でも、この書き方では undef を返さない限り eq undef と
# ならないような気がするなぁ。

>>3314 mikan
> いざメールを使用してみると、パスワード認証エラーがでて
> はじかれます。
メールを使用というのは、POP を使ってメールを取得してみた
ということですか? もしそうなら、telnet で POP サーバに
アクセスし、本当に認証エラーになっているのか調べてください。
      http://x68000.startshop.co.jp/~68user/net/pop3-1.html

あと、ユーザ追加だけで OK か、というのは職場のメールサーバの
設定次第なので何とも言えません。

No. 3318 # tomtom 2003/08/23 (土) 09:37:45
tomtomです。
68userさん、アドバイスをありがとうございます。
自分が素人であることを実感いたしました。
undefを判別するのには、define関数をもちいるのですね。
アドバイスに感謝いたします。
早速、試してみますね。

ではでは

No. 3319 # スナフキン 2003/08/29 (金) 05:22:17
perlでテキスト処理をしていますが、有るリストをキーとしたハッシュ
を生成したんですが、そのキーとなるファイルのサイズが110Mb程、キー数
(レコード数)は約1000万弱のレコードが有ります。

そのハッシュのキーを使い別のCSVのフィールドの中に同じキーが存在
する場合に必要な処理を行なっています。
if(exists $KEY{$csv_key_field}){ 処理 }

で、実際に動かすと500Mbのメモリを使い切り(何故?)、1Gbのスワップ
さえも使いきり止まってしまいます。

根本的にこのアルゴリズム自体が悪いのか、それとも何かメモリ使用量を
抑える解決方法があるのか教えてください。

ちなみに、キーとなるデータを配列に格納して grep で検索するとさらに
べらぼうに時間が掛かります。

具体的には2つのリストの合成処理なんですが、このくらいの規模になると
DBに置き換えて処理した方が良いのでしょうか?
(最終的には何らかのDBに格納されるそうです)

もちろん、変数は可能な限り局所化しています。(つもりです(^^;)

もっと言えば、上記は最大サイズのリストではありますが、キーリストは
複数あり、それらを順繰りに処理しています。

どうぞお助けくださいm(_ _)m

No. 3320 # 68user 2003/08/29 (金) 22:28:24
>>3319 スナフキン
> そのキーとなるファイルのサイズが110Mb程、キー数(レコード数)は
> 約1000万弱のレコードが有ります。
全体のデータ容量がわからないですが、仮に 300MB 程度だとしても、
1.5GB 喰い尽くしてもおかしくないかなぁとは思います。

perl の内部構造は知りませんが、スカラー 1つ、配列の一要素、
ハッシュ 1キーなど、それぞれに必ず何バイトかずつ管理用データを
perl が保持しているからです。

実感としては、100MB 程度でもデータの持ち方次第ではまともに
動かないこともあるんじゃないかと思います。

> このくらいの規模になるとDBに置き換えて処理した方が良いので
> しょうか?
perl でもがんばれば何とかなるかもしれませんが (実データはファイルに
保存し、ハッシュにアクセスされるたびに tie でそのファイルを見にいくとか)、
    1. データが固定長 (もしくは最大長が決まっている)
    2. CSV の項目名や項目長が変わる可能性は少ない
    3. 処理内容が変わる可能性が少しでもある
          (この条件に引っかかるレコードは除外する、とか)
であれば、DB に突っ込んだ方がよろしいのではないでしょうか。
わたしならそうします。

項目名や項目長も変わるかもしれないなら、DBD::CSV モジュールとか
(使ったことないですけど)。

No. 3321 # スナフキン 2003/08/29 (金) 23:36:11
助言ありがとうございます。

>仮に 300MB 程度だとしても、1.5GB 喰い尽くしてもおかしくないかなぁとは思います。
うーんやはりそうですか。

データの持ち方の影響も大きいとは思いますが、ハッシュは内部で
キーのインデックスを作っているために、キー全体のデータよりも
相当数のメモリを食うのかな?となんとなく考えていましたが、
まさかこれほどとは思いませんでした。

> 1. データが固定長 (もしくは最大長が決まっている)
> 2. CSV の項目名や項目長が変わる可能性は少ない
> 3. 処理内容が変わる可能性が少しでもある
> (この条件に引っかかるレコードは除外する、とか)
>であれば、DB に突っ込んだ方がよろしいのではないでしょうか。
2と3は該当するので、DBに変換して処理する方向でやってみます。

ただ、元の入力ソースの総合計が2.6Gbも有るので、DB化する事に
かかる時間やファイル占有量がわからなくてその選択肢を選びま
せんでした。

全て書き直しになりそうだ・・・汗

No. 3322 # 岩崎 [E-mail] 2003/09/01 (月) 13:06:04
突然のメールですみません。
岩崎と申します。

実は、WebでMewの操作について探していたところ、貴殿を拝見し、
もしかしたら、下記の対応方法をご存じなのではないかと思い、
メールをお送りさせていただいております。

お忙しいとは思われますが、もし、ご存じでしたならば対処方法を
教えてください。

----
質問
----
現在、MewにてMailチェックをしております。
emacs上でM-x Mewとタイプするとパスワードが聞かれると同時に
過去のMail(以前受信したMail)も表示されます。

しかし、昨晩より、M-x Mewと打ち込んでも新規に受信したmail
しか閲覧できません。おかしいとおもい、Mail/inbox配下を
見たところ、確かに1〜3500件までは入っております。

再度、「i」コマンドで新しいMailを受信すると、受信したMailは
3501件目と表示されますが、3500件目より以前のmailは見えません。
「Shift-O」で順番を整理すると、整理はできるようです。

Mewにて何故か?見えなくなった過去のMailを見えるようにするには
どのようにすればよろしいのでしょうか?

ご存じであれば、教えてください。
よろしくお願いいたします。

また、できれば、CCでiwanov@relief.ne.jpまで情報を転送
いただければ幸甚です。、

No. 3323 # pyontan [E-mail] 2003/09/02 (火) 08:07:32
ご存知の方がいらっしゃれば、教えてください。
UNIXサーバで、あるファイルがなくなりました。
いつ、どのように消えてしまったかを知る術はあるのでしょうか?
領域不足で、優先度が低く削除されたとか、
誰かがrmコマンドを実行したとか…。
教えてください。

No. 3324 # 68user 2003/09/05 (金) 01:04:28
>>3322 岩崎
Mew のことは http://www.mew.org で質問した方が早く解決すると思います。


>>3323 pyontan
> いつ、どのように消えてしまったかを知る術はあるのでしょうか?
残念ながら、よっぽど特別な仕掛けでも仕込んでおかない限り
無理だと思います。

> 領域不足で、優先度が低く削除されたとか、
さすがにこれはないでしょう。ちなみに UNIX では、ファイルに
優先度という概念はないです。

> 誰かがrmコマンドを実行したとか…。
というようなログも、一般的な UNIX では用意されていないです。

No. 3325 # ken 2003/09/07 (日) 21:51:47
こんばんは。
現在、DNSクライアントを勉強中です。
サンプルをまだ解析中なんですけど、どうしてもわからない箇所がいくつかあるので…質問させていただきます。

まず、フラグについてです。
えっと…少し説明しにくいんですけど、何故、16ビットと書いてあるのに第15ビットまでの説明までしかないのでしょうか?

次に、ネットワークバイトオーダについてです。
サンプル中で、質問数、回答数、権威数などはpackするときにネットワークバイトオーダに変換しているのに、IDとフラグを変換しないのは何故でしょうか?
どういう物をネットワークバイトオーダに変換しなければいけないのかよくわからなくて…。

最後に、サンプル中に出てくる$restについてです。
データを受信した時、細かく言うと$restにはどういった順番でデータが入っているのでしょうか?
それがよくわからなく、get_domainサブルーチンに渡したときの処理の仕方がよくわかりません…(−−;

以上長々と申し訳ありませんが、どうかよろしくお願いしますm(_ _)m

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