hypermart は Host ヘッダです。 > 1:news.yahoo.co.jp/headlines/top/ こっちは yahoo の WWW サーバが悪いです。 WWW サーバの返すヘッダとボディの間のセパレータが CR LF LF (もしくは CR LF で、最後の LF はボディの 一部かもしれない) となっているので、httptalker が ボディ部もヘッダの一部だと解釈しています。 まぁ、セパレータが CR でも LF でも CR LF でも 認識できるようにするのがダウンローダとしては正しい道でしょう。 |
su についてのご返答ありがとうございました。 早速挑戦してみます。 |
あ゛・・・きちんと読んでなかった 取り敢えずhost付けてやってみたら 上手く行きました yahooの方はちょとむつかしくて ヘッダーの役割とかがいまいち解ってないので、 もう一度きちんと読んでからやってみます 取り敢えずありがとうございました |
@68user > netstat -a とか。 > 標準では netbios 関係くらいしか listen してないと思います。 なるほど、どうもありがとうございました。 |
ところで やままさんへ。 1時間に一度くらいこのページにリンクチェックをかけておられる ようですが、このページは Last-modified を GMT で出しています。 しかし、そちらのページでは JST として扱っているようで、 常に 9時間前に更新されたものと見なされています。 |
はじめまして、カワエといいます。今受験生です。 私は将来プログラマーになりたいのですが、PCを買ってまだ半年、まともに触ったこともない超初心者です。 プログラマーの具体的なことについても知らず、ネットで検索したりしているのですが、 他の掲示板で「大変だ」「引退が早い」「プログラミングは趣味にしておくべきだ」等の発言をよく見ましたが、実際のところどうなのでしょうか? それと、やはり女性差別があったりするのでしょうか? 68user様、プログラマーの方、教えてください。 |
あらら、進路相談ですか。 ゲームプログラマになりたいのなら、ここより http://www.lares.dti.ne.jp/~yagiyama/ で聞くのがいいでしょう。 でなくて、いわゆる SE を目指すならば http://village.infoweb.ne.jp/~watany/selink/index.htm を読むといいかもしれません。 僕は一応 SE ですが、社会人一年目なので、軽々しくアドバイス するのはやめておきます。 |
有り難うございます。 では、そっちに行ってみることにします。 |
すみませんが、HPの紹介をさせてください。 ゲーセンはゲーマーだけの物って誰が決めた!! もっとゲーセンを楽しもう!!をテーマに ゲームセンターのゲームをゲーマーのみならず カップルや女の人も楽しめるように、 情報をセレクト&紹介するページです。 内容は音ゲーの手ほどきや僕のホームグラウンドの ゲーセンの最新機種入荷情報などです。 是非おいでください。 この書き込みが掲示板の意に反する内容でしたら、 お手数ですが削除してください。 |
はじめまして。 インフォシークからとんできました。 今、一生懸命UNIXのことを書いたHPを作っています。 ここに書いてあることがとっても役立ちました。 また参考にさせていただきます。 学校でunixを使っていて、けっこうはまってきました。 家はまだウィンドウズですが・・・ もしよろしかったら私のHPにも足を運んでください。 けっこう頑張って勉強しています。 |
> 今、一生懸命UNIXのことを書いたHPを作っています。 ほほぅ、一番オジサンっぽいコマンドが cal ですか (笑) 僕は cpio と vi じゃないかと思います。なんとなく。 |
@68user様 どうも、gongoです。 Xウィンドウ・システムのことで質問があります。 以前見ていただいたプログラムなどで画面に表示される窓を なんらかの形で保存して、texなどにはりつけたいと考えております。 そこで画面を保存するにはどのようにしたらよいのでしょうか。 xwd というコマンドを用いると窓の内容を保存できるようなのですが 自分の環境ではこの方法で保存した .xwd ファイルを xv で 表示しようとすると真っ黒になっていました。 で、他のマシンでもやってみたところ、中には窓を取り込めるものも ありました。しかし、そのマシンだと今度は以前見ていただいたプログラムが 期待通りに動きません(カラーマップのインデックスがすくない模様)。 自分のマシンと xwd がうまくいったマシンでは OSは一緒です。 ちなみにOSはFreeBSD 2.2.8Rです。インストールした人間が違うので ひょっとすると何かX関連で細かい設定がまずいのかもしれませんが そこら辺の確認の仕方もよくわかりません。 なにか良い方法はないでしょうか。 また xwd 以外に窓を取り込む良い方法はないでしょうか。 よろしくお願い致します。 |
@68user様 度々すみません、gongoです。 >また xwd 以外に窓を取り込む良い方法はないでしょうか。 自分で書いておいてあれなのですが、xvの機能でGrabというのが あるようなので試してみます。 |
> 自分の環境ではこの方法で保存した .xwd ファイルを xv で > 表示しようとすると真っ黒になっていました。 原因や正しい回避方法は知りません。ただ、display や xwud で 見ると正しく表示されるので、僕は特に困ってないです。 おそらく xwd 形式で保存しておく必要はないのではないでしょうから、 (TeX に貼るということなので) % convert foo.xwd foo.eps しておけばいいでしょう。 > xvの機能でGrabというのがあるようなので試してみます。 あと、import ってのもあります。display, convert, import は ImageMagick に含まれています。 |
@68user様 xvのGrabで保存でき、表示もうまくできました。 >% convert foo.xwd foo.eps こちらについても試させていただきます。 >ImageMagick に含まれています。 このImageMaickというのは何なのでしょうか。 標準でインストールされるもの(?)なのでしょうか。 何はともあれなんとかTexにはれそうです。 ありがとうございました。 |
> 標準でインストールされるもの(?)なのでしょうか。 されないです。FreeBSD なら ports か packages でインストール しましょう。結構有名なプログラムなので、NetBSD でも Linux でも パッケージは作成されているはずです。 |
@68user様 >FreeBSD なら ports か packages でインストールしましょう。 なるほど、わかりました。 あぁ、でも勝手にマシンに入れちゃうとまずいかも・・・。 私のマシンではないので様子を見てインストールできたらやってみます。 |
HTTP クライアントを作ってみよう(2) http://www2.startshop.co.jp/~68user/net/http-2.html のhttp-client.plを実行すると下記のエラーで止まってしまいます。 Use of uninitialized value in subroutine entry at http-client.pl line 14. Use of uninitialized value in concatenation (.) at http-client.pl line 21. 対策方法をお知らせください。 perlはperl, v5.6.0 built for MSWin32-x86-multi-threadを使っています。 OSはWin98SEです |
こちらの perl-5.6 では動いているので、おそらく 7行目の $port = getservbyname('http','tcp'); で値が取得できていないんでしょう。 $port = getservbyname('http','tcp') || 80; でどうですか。 |
>$port = getservbyname('http','tcp') || 80; >でどうですか。 うまくいきました。ありがとうございました。 ところでこのスクリプトを会社の2台のUNIXで走らせたら 1台は動作してもう一台はUse of uninitialized valueの エラーで止まってしまいました。それではとWINDOWSでやって みたら同じエラーで止まってしまいました。原因がわからないので 質問をさせて頂きました。WSによって動いたりそうでなかったり する原因は何なのかな?っと言う新たな疑問がありますが 宜しければお知らせください。 |
man getservbyname すればわかりますが、この関数は /etc/services (NIS を使っているなら ypcat services の 結果) を読むだけの関数なので、/etc/services がオープン できないとか、ファイルはあるけど中身に http 80/tcp というエントリがない、などというときポート番号の取得に 失敗します。 サンプルとはいえ、本来は getservbyname に失敗したら 80 に 決め打ちするか、あるいは die すべきですね。次回更新時に 直しておきます。 |
お返事ありがとうございました。 perl http-client.plとするとうまく動作するのですが ブラウザから起動するとInternal Server Errorとなります。 起動例(http://www.???.ne.jp/cgi-bin/http-client.pl) もともとそういうスクリプトなのかもしれませんがスクリプト内 もしくは引数でわたされたアドレスのhtmlやjpg,gif等を ブラウザに表示するのはどうしたらよいのでしょうか。 よろしくお願いします。 |
#!/usr/bin/perl print "Hello world"; は CGI 経由では動きません。しかし #!/usr/bin/perl print "Content-type: text/html\n\n"; print "Hello world"; は動きます。そういうことです。 |
くだらないことですが・・・ HPを置いているサーバにbashのファイルがありますが、 これはunixシェルが使えるということなのでしょうか。 そして、Apacheを使うときにはDNSの設定を行う必要がありますか? もしよろしければお答えください。 よろしくお願いします。 |
> HPを置いているサーバにbashのファイルがありますが、 どこにどういうファイルがありますか? /bin/bash や /usr/local/bin/bash ですか? また、どうやってその ファイルを見付けましたか? > Apacheを使うときにはDNSの設定を行う必要がありますか? ローカルでテスト用に使うのですか? なら必要ありません。 # ってこともないんだけど。自ホストさえ引ければ問題なし。 apache を使って web を一般に公開するにしても、普通に telnet や nslookup が使えているなら、DNS の設定は不要 です (それは DNS が設定済ということだから)。 |
ftpソフトでファイルを取得すると、 一覧のところに .bash_logout .bash_profile .bashrs というファイルが置かれています。 ちなみに、binディレクトリ内には何もありません。 (これはcgiが使えないということ?) bashファイルに関しては所有者が私になっているので、 (rootではないということ) ・・・・どういうことなんでしょう。 なんか、よくわからない質問で申し訳ありません。 |
@68user様 どうも、gongoです。 X関連(というよりもC言語かもしれませんが)で質問があります。 label = XtVaCreateManagedWidget(name,・・・) と書けば、labelというウィジェットを生成できますが 複数個のウィジェットを生成したい場合 for文などでこの文章を繰り返して生成することは可能でしょうか。 例えばlabel00,label01,label02,・・・、そしてname00,name01,name02,・・・ などのように変化させていくつもりで unsigned char labelname[]="label00" unsigned char widgetname[]="name00" といったように最初のlabel00とname00をchar型の配列に入れて for文で回るたびに数値のところだけを書き直すといったことを やろうとしたのですが、どうもうまくいきませんでした。 for(i=0; i<NUM; i++){ labelname = XtVaCreateWidget(widgetname,・・・); labelとnameの数字をカウントアップする; } といった感じでウィジェットを生成できれば簡単なのに・・・と思ったのですが やはり個々に宣言しないとまずいのでしょうか。 labelnameのところは本来Widget型じゃないといけないからうまくいかない のでしょうか。widgetnameのところは本来String型ですがこちらもよくわかりません。 また、同様にイベント処理でイベントハンドラを用いる時も for文で回すことは可能でしょうか。 つまりは以前見て頂いたプログラムのようにlabelをいくつも用意し、 それぞれの窓にButtonPressをイベントハンドラとして登録するという一連の文を 書くと結構大変ですし、後々窓の個数を変える時のことを考えると for文で回せたらよいなぁと考えた次第です。 何卒宜しくお願い致します。 |
@gongo さん > label = XtVaCreateManagedWidget(name,・・・) むむ? 前のソースではそこらへんをやっておられたと思いましたが…。 Widget label[10]; char name[256]; for( i=0; i<sizeof(label)/sizeof(label[0]) ; i++ ){ snprintf(name, sizeof(name), "name%02d", i); label[i] = XtVaCreateWidget(name, ...); } ではダメですか? > 最初のlabel00とname00をchar型の配列に入れて for文で > 回るたびに数値のところだけを書き直すといったこと はできません。C 言語では、変数名や関数名などのシンボルを 動的に生成することはできないからです。 # …という表現は正しいかな? > unsigned char labelname[]="label00" > labelname = XtVaCreateWidget(widgetname,・・・); また、「labelname の*内容*」と「メモリ領域」には何の関係も ないので、XtVaCreateWidget の戻り値を格納する領域がどこにも ない、ということになります。 @みちこさん > これはunixシェルが使えるということなのでしょうか。 一言で言えば、 「~/.bash* がある、ということだけでは何とも言えない」 です。相手側に telnet サーバが上がっているか、IP アドレスにより telnet の接続元を限定していないか、パスワードエントリが適切に 設定されているか、ログインシェルが適切に設定されているか、 などを全てクリアすればログインできるでしょう。 逆に言うと、プロバイダが客にリモートログインさせないように するには、たくさんの方法があるということ。その情報がない 以上、ログインできるとも できないとも判断できません。 > ちなみに、binディレクトリ内には何もありません。 > (これはcgiが使えないということ?) bin と CGI には関係はありません。 あと、質問の仕方がいまいちですね。例えば、「binディレクトリ」 というのは、/bin なのか、ホームディレクトリの bin なのか 判断ができません。何を書けばよいかがわからない、というのは 理解できますが、その場合は調べた情報を全て書いて下さい。 |
最近うちに届いたメール。 From: * <*@mti.biglobe.ne.jp> Date: Sat, 2 Sep 2000 00:24:57 +0900 (内容なし) From: * <*@da.mbn.or.jp> Date: Wed, 6 Sep 2000 21:24:05 +0900 (内容なし) From: * <*@calltoweb.com> Date: Fri, 8 Sep 2000 12:43:55 +0900 (内容なし) From: *@themis.dricas.com Date: Sat, 9 Sep 2000 12:49:08 +0900 (JST) (内容なし) From: * <*@d7.dion.ne.jp> Date: Sun, 10 Sep 2000 09:11:30 +0900 Subject: あの ホームページみました。何とかしてください。 From: * <*@f7.dion.ne.jp> Date: Sun, 10 Sep 2000 10:29:26 +0900 届きました? From: *@nifty.ne.jp Date: Tue, 12 Sep 2000 00:05:51 +0900 (JST) このホームページはどうなっているんですか? From: *@aol.com Date: Tue, 12 Sep 2000 09:44:30 EDT Subject: エラー表示ありとでました。 和議申請について 和議申請とは この人たちにはコミュニケーション能力というものがないのだろうか。 好意的に解釈すると、「SEGA BBS 過去ログが見れません」 と言いたいのかとも思うのだが、本当にそうなのか。 うちにイタズラメールを送ろうという活動でもやっているのでは ないか。あるいは、どこかの web をクリックするとここにメールが 送られてくるような仕組みになっているのではないか、とも思えてくる。 謎である。真実を知っている人がいたら教えてください。 |
@68user様 素早いお返事ありがとうございます。 >むむ? 前のソースではそこらへんをやっておられたと思いましたが…。 たしか前のではすべてのlabelに対してXtVaCreateManagedWidget()やXtAddEventHandler()などをやっていたと思います。(^^; >Widget label[10]; >char name[256]; >for( i=0; i<sizeof(label)/sizeof(label[0]) ; i++ ){ > snprintf(name, sizeof(name), "name%02d", i); > label[i] = XtVaCreateWidget(name, ...); >} snprintfというのが使ったことがないので明日調べて 試させていただきます。 ありがとうございました。 |
質問の仕方がうまくなくて、ごめんなさい。 これからもっと磨いていきますので、 よろしくお願いいたします。 初心者にはココに質問するのはちょっと高度なことなのでしょうか。 とかちょっと思ってしまった。 なにか超初心者向けのページがあったらご紹介ください。 ご迷惑おかけしました。 というわけで今日も本を読むばかりです。 コンピュータって難しい・・・ 聞く人もいないのがホントにつらいところです。 |
> 質問の仕方がうまくなくて、ごめんなさい。 というところにさらに説教くさいことを書くのもアレですが、 回答をもらったときに「理解できたかどうか」「解決したか どうか」をちゃんと書くことも重要です。 「ありがとう」と、お礼のみを書かれてもこっちは何も得る ものがないわけですが、 「〜が理解できた/できなかった」 「〜と〜の関係がわからない」 「言われた通りにやってみたら〜というトラブルが出たが、 〜とすることで解決できた」 という返答が得られると、回答者が「こういう解説の仕方で 相手に理解させることができた」「この部分で嘘を言ってしまった」 「わかりにくい表現をしてしまった」などということに気づく ことができます。 で、みちこさんは apache の件も bash の件も、解決したのか、 理解できたのか、を書いておられません。これでは回答した 僕には何のメリットもありません。 要は「お礼よりも結果報告」です。 これは初心者向けのコミュニティでも上級者向けのコミュニティでも 同じですので、今後は注意されることをお勧めします。 > なにか超初心者向けのページがあったらご紹介ください。 逆に、fj やメーリングリストなど、ここよりもずっとレベルの 高いところに行くのもいいでしょう。しばらく読み続ければ、 「よい質問の仕方とはどういうものなのか」がわかってくると 思います。 > @68user様 ところで、「様」はご勘弁を>gongo さん |
@68userさん > snprintfというのが使ったことがないので明日調べて > 試させていただきます。 と思っていたら、マシンが起動しなくなってしまいました。 試す以前に修理手続きやら何やらやらなければ・・・。 D◯S/Vパラダイスというお店で去年の6月に購入したマシンなのですが、 昨日突然フリーズして以後起動しなくなりました。(泣) HDDのランプとかはつくのですが一瞬HDDのカラカラって音が鳴って それ以後進まなくなってしまいました。 それとsnprintfというのはsprintfのことでよろしいのでしょうか。 今日、本を見た感じではsnprintfというのがなかったもので。 どっちにしろsprintfも使ったことがなかったので 他のマシンで試してみます。 |
@68userさん sprintf()を使ってやってみたらうまくいきました。 といっても、最初はうまくいかなくて labelを生成するところで segmentation fault で 止まってしまったので、2番目の引数である sizeof(name) というのを 削除したら通るようになりました。 |
>apache を使って web を一般に公開するにしても、普通に >telnet や nslookup が使えているなら、DNS の設定は不要 >です (それは DNS が設定済ということだから)。 やはりDNSの設定はいらなかったようです。 Perlがうまくインストールされていなかったため、 動作しなかったようでした。 しかしながら、単にパソコンの調子が悪いだけだったかも、 という疑問も捨て切れません。 というのも、Apacheを立ち上げると、突然フリーズしたりするので。 詳しい理由はちょっと見当がつきません。 >相手側に telnet サーバが上がっているか、IP アドレスにより >telnet の接続元を限定していないか、パスワードエントリが適切に >設定されているか、ログインシェルが適切に設定されているか、 >などを全てクリアすればログインできるでしょう。 IPアドレスによってtelnetの接続もとの限定をしているかどうかは、 向こうに聞かないとわからないのでしょうか。 特にそのような項目はメール確認の時にはふくまれていなかったのですが。 またログインシェルが適切に設定されている、とはどういう状態をいうのですか。 >例えば、「binディレクトリ」 >というのは、/bin なのか、ホームディレクトリの bin なのか >判断ができません。 おっしゃるとおりです。 私が言ったのはホームディレクトリのbinのことです。 少しはましになったでしょうか。 MLも探してみることにしました。 もう少しうまく質問できるようになったら またこちらにこさせてください。 お世話になります・・・ |
@gongo さん > それとsnprintfというのはsprintfのことでよろしいのでしょうか。 失礼ながら、man の見方はご存知でしょうか? man snprintf です。 日本語訳はこちら。 http://www.jp.FreeBSD.org/cgi/mroff.cgi?subdir=man&man=printf&dir=jpman-3.1.0%2Fman§=3 なお、(FreeBSD なら) section 3 の日本語訳は現在の jman には 含まれていないので、web 上でしか見られません。 @みちこさん > IPアドレスによってtelnetの接続もとの限定をしているかどうかは、 > 向こうに聞かないとわからないのでしょうか。 基本的にはそうですが、まぁ実際に telnet で接続して みればわかる場合もあります。 Connection refused とか Connection closed by foreign host とか、 言われたら、無理ということです。 # Connection refused だからといって、IP アドレスによる # 制限をかけている、とは断言できませんが。 あと、こういうことはプロバイダに確認すべきことです。 ちゃんとお金を払っているのでしょうから「telnet 接続は 可能か」と堂々と問い合わせましょう。 > またログインシェルが適切に設定されている /etc/passwd (あるいは /etc/master.passwd, /etc/shadow など) の話です。 username:*:1001:1001:HOGEHOGE:/home/username:/bin/csh username:*:1001:1001:HOGEHOGE:/home/username:/nonexistent 前者はログインできますが、後者は /nonexistent というシェルは 存在しないので、結果的にシェルが起動せずログインできません。 |
@68userさん >> それとsnprintfというのはsprintfのことでよろしいのでしょうか。 >失礼ながら、man の見方はご存知でしょうか? man snprintf です。 manの見方は知っていましたがほとんど使ったことがなく、C言語辞典の ようなものにも載っていなかったものでてっきり近くに載っていた sprintfだと思っていました。 >snprintf(name, sizeof(name), "name%02d", i); お教えいただいた日本語マニュアルHPの方を見ました。 で、読んだ結果snprintfの前にprintfもなんだか わからなくなってきてしまったので、"name%02d"の部分について 確認させてください。まず、「%d」と書けば整数を表示させると 思いますが、その前の「2」というのは整数二桁の精度ということですか? あと、その前の「0」はiが一桁の時、01、02、・・・のように「0」を いれてくれるということでしょうか。 そしてsizeof(name)についてですが、これがあるsnprintfと、 ないsprintfの違い(両方ある必要性?)がいまいちよくわかりません。 snprintfではsizeof(name)の容量を超えるものを 一番目の引数のnameに入れることを許さない ということなのでしょうか??う〜ん・・・。 |
はじめまして。 Perlで質問があります。 パケットを送るときにその容量を どうやって指定するのですか? 例えば1000バイトをUDPで送りたい場合 どうすればいいんでしょうか? そのパケットの作成方法がわかりません。 よろしくお願いします。 |
@gongo さん > manの見方は知っていましたがほとんど使ったことがなく わからなければ、とにかく man です。まずマニュアルを読まないと、 理解できる/できないというレベルにさえたどり着けませんから。 > printfもなんだか わからなくなってきてしまったので、 ま、これは宿題ということで。いろんな値を %d, %2d, %02d で 表示させてみればわかるでしょう。 # printf(3) は、よく使うわりにわかりにくいマニュアルの # 代表だと思うので、あまり気にしなくてよいと思います。 > これがあるsnprintfと、ないsprintfの違い snprintf だと、適切な値を第二引数に与えれば、いかに 生成される文字列が長くても、その領域を越えて書き込む ことはありません。要は、バッファオーバーラン対策です。 strncat/strncpy/strlcat/strlcpy も同じです。 @ケイさん > パケットを送るときにその容量をどうやって指定するのですか? > 例えば1000バイトをUDPで送りたい場合どうすればいい > んでしょうか? C の send/sendto と違い、perl の send では長さを与える 必要はありません。perl 君がよきにはからってくれます。 > そのパケットの作成方法がわかりません。 まさか IP データグラムを自前で作る、とかいう話じゃないですよね? |
@68userさん > ま、これは宿題ということで。いろんな値を %d, %2d, %02d で で、やってみたところ %d は左寄せで0,1,2,・・・というようになり、 %2d は二桁分書く場所を確保しつつ、値が一桁なら十の位を 空白で埋め(見ため右寄せ)、%02d は二桁分書く場所を確保しつつ、 値が一桁なら十の位を0で埋めていました。 > snprintf だと、適切な値を第二引数に与えれば、いかに > 生成される文字列が長くても、その領域を越えて書き込む > ことはありません。要は、バッファオーバーラン対策です。 なるほど、わかりました。 プログラムは snprintf でうまくいきました。 |
68user-sanこんばんは、 HTTPクライアントのサンプルコードを少し変更してある特定のサイトの CGIに任意のデータを渡しリードしたHTMLを表示するCGIファイルを作り ました。リードしたHTMLをブラウザに出力する前にリンク先等を変更 して出力したいのですが良い方法がありましたらお知らせください。 例)リードしてきたHTMLのファイル等のリンク先が ./hogehoge/hoge/hoge1.jpgの場合ブラウザに出力する前に ./hoge_hoge/hoge1.jpgに変更してブラウザに出力する。 |
@konanさん 68userさんでなくて申し訳無いですが・・・ #しかも多分役に立たない内容です。スミマセン ただのテキストのやり取りなワケですから、 いったん読み込んだHTMLをブラウザに渡す前に 内容を書き変えてやれば良いだけですよね? そう言う話でなくて、その書き換えのやり方を聞いてらっしゃるのなら それは答えようの無い話だと思います。 それを考えるのがプログラマの仕事なワケですから。 |
>まさか IP データグラムを自前で作る、とかいう話じゃないですよね? IPデータグラムって要はパケットのことですよね? 自前で作ることになるのかな?よく分かりませんが 例えば、適当なゴミパケットを送りたい時はどうすればいいですか? そのゴミパケットの作り方を教えて頂きたいです。 別に中身のあるデータじゃなくていいんです。 |
@konan さん > ./hogehoge/hoge/hoge1.jpgの場合ブラウザに出力する前に > ./hoge_hoge/hoge1.jpgに変更してブラウザに出力する。 s|\./hogehoge/hoge/|\./hoge_hoge/|g とかそういうことですか? @hsj さん > 68userさんでなくて申し訳無いですが・・・ 言うまでもないですけど、どなたでもご自由に回答して いただいて結構でござんす。 @ケイさん 普通、パケットを自前で作ると言えば GET /index.html HTTP/1.0 というようなアプリ層のプロトコルに、TCP ヘッダを付けて TCP セグメントを作ったり、さらに IP ヘッダを付けて IP データグラムを作ったりすることを指すような気がします。 こういうレベルの処理は、普通 OS がやってくれるものです。 > 例えば、適当なゴミパケットを送りたい時はどうすればいいですか? こういうアプリケーション層のプロトコルは、クライアントと サーバが協調して動けばいいので、クライアントとサーバ 両方を作るならば、プログラマが勝手に決めればよいです。 send(SOCKET, 'hoge', 0, pack_sockaddr_in(1234,inet_aton('10.0.0.1'))); というふうに。 ところで UDP の解説って需要あるのかしら。Perl/Tk で IP Messenger http://www.asahi-net.or.jp/~VZ4H-SRUZ/ipmsg.html を作りかけたんだけど、途中で飽きちゃってそのまま… (実用レベルではありません)。UDP の解説を書こうとしたんですが、 あんまり読みたい人もいないかなと思って、未着手です。 ちなみにこの IP Messenger を作ろうとすると、UDP は理解できるわ、 ブロードキャストもバッチリだわで、とても勉強になります。時間の ある方、チャレンジしてみては。 |
昨夜68userさん宛てにメールで質問してしまい、失礼しました。 掲示板なるものがあるんですね。 さっそくですが、 もしどなたか知ってる方がいらっしゃったら教えてほしいのですが。 GETの場合 HTTPアクセスするときに http://www.foo.com/bar.cgi?data1=hoge&data2=fuga とすることで結果(HTMLソース等)を取得できますよね。 でも、 POSTの場合 このdata1=hoge&data2=fugaを見せないようにするために ストリームでサーバに送信しますよね。 でも、この送信部分を自分で作成した時にどのように 送信すれば良いのかが不明です。 言語はJavaです。 Javaだと、どのストリームに変換すれば良いのか、データにヘッダ情報 のようなものが必要なのかも不明ですし、実際の通信ではどのソケットを 開いてサーバ側と接続すれば良いのか全く分かりません。 他の言語でも良いのですが(可能であればJava)、 プログラム自身がPOSTでデータを送信して結果(HTMLソース等)を取得する ようなサンプルコードってないものでしょうか? |
Java のことなら、まずは java house にあたってみる のがいいでしょう。 http://java-house.etl.go.jp/ml/archive/j-h-b/015871.html#body で POST できることは確認しました。 # アプレットではなくアプリケーションから、ですが。 ここらへんに詳しくなるには http://java-house.etl.go.jp/ml/archive/j-h-b/015872.html#body で紹介されている tutorial を読むのがよさそうですね。 |
ありがとうございましたー。 これでおそらくブラウザの代わりにプロキシからjavaでリクエストを POSTできると思われます。 相手(webサーバ)がCGIでも何で書いていても、同じだと思っていい んですよね?httpで標準化されてるんでしょうから。 |
ありがとうございました! アドバイスのおかげで処理方法が浮かびました。 >ところで UDP の解説って需要あるのかしら。 あります! もし時間があるなら是非解説をやって頂きたいです! |
@osa さん > 相手(webサーバ)がCGIでも何で書いていても、同じだと思っていい > んですよね?httpで標準化されてるんでしょうから。 そういうことです。 # 1年ぶりに Java を使ったので、僕の知識はあやしいですが。 @ケイさん >> ところで UDP の解説って需要あるのかしら。 > あります! へい、暇を見付けて書いてみます。 多分「IP Messenger を作ってみよう」になると思いますけど。 # 他に UDP でおもろいネタってあるかなぁ。resolver を作っても # あんまりおもしろくなさそうだし、NFS なんて全くわからんし。 ただし、最近人生に疲れていて (笑) 書く気力がないので、 気長にお待ち下さいまし。 |
はじめまして。 Kshについて質問があります。 シェルスクリプトの中で設定した変数、例えば、x=300とかを 別のスクロリトで参照することはできないのでしょうか? export x=300 と、言うようにしてもだめでした。 もう少し具体的に書くと、script1の内容は x=300 print "設定した値は$x" script2の内容は print "設定した値は$x" と、言ったようにscript1で設定したxをscript2で参照したいのです。 ご回答、よろしくお願いします。 |
どうも、いつもお世話になっております。 今 Bourne SHELL のスクリプトを書いたり解析したりすることができる ようになりたいのですが、最適な本はないでしょうか。man shでは分 かりにくい部分を例で示しながら文法を解説した本をご存じでしたら 教えていただけませんか。ちょうど C SHELL でいうところの 「csh & tcsh Manual & Reference」(秀和システム) みたいな本です。書店を探したけどなかなか見つからなくて…。68user さんが Bourne SHELL について勉強したときにどんな本を読んだのでしょうか。 #bash については秀和システムの「bash Manual & Reference」がありますが… |
>skel.103Mさん これなんかどうですか? 良さそうですよ。 Bourne Shell 自習テキスト http://www.tsden.org/takamiti/shText/index.html |
@skel.103M さん 僕はこのまえ sh スクリプトを初めて書きましたが、 > Bourne Shell 自習テキスト > http://www.tsden.org/takamiti/shText/index.html と man で乗り切りました。 あと、UNIX USER 10月号 (最新号) に 20 ページ程度ですが、 シェルスクリプト講座が載ってます。結構勉強になると思います。 ただ、sh スクリプトの決定版、というような本は知らないです。 http://www.oreilly.co.jp/BOOK/bash2/contents.htm ってのがありますが、読んだことはないです。 # 結局 bash と sh は別物だし…。 @やすさん > シェルスクリプトの中で設定した変数、例えば、x=300とかを > 別のスクロリトで参照することはできないのでしょうか? export して環境変数にセットしておけば、子プロセスからも 参照できるはずです。それができないということは、script1 から script2 を呼んでいるのではなく、あるプロセスから script1 を呼び、script1 の終了後に script2 を呼んでませんか? そういう場合は、ファイル経由で情報を渡すのがいいと思います。 |
管理人様 はじめまして、黒揚羽というものです。 私は UNIX に興味のある者で、今度とある IRC チャンネルで、 『UNIX 雑談会』を毎週催すことになりました。 それで、この掲示板にはことに UNIX 等のオペレーティングシステムに 興味のある方が集っておられると思い、ここでその IRC での 雑談会の紹介をしたいのですが、よろしいでしょうか? もちろん、商業的・営利的なものではなく純粋に個人の趣味の範囲で 行っているようなものであることをあらかじめお断りしておきます。 |