>>3275 kotaro > IPアドレスのみで通信を行う IP (インターネットプロトコル) のみで通信を行う、という ことでしょうか。 UNIX なら可能です。Windows なら XP からですね。「raw socket」 などで検索してみてください。 |
ありがとうございます。 socket関数にrawIPを使う機能がありました。 この機能を使えば、raw(生)のIPデータグラムを扱えるので IPヘッダ以外にもTCPやUDPヘッダも自由に付けることができそうです。 |
No3272 で質問させて頂いた者です。同環境でもう1つ質問させてください。 printfで画面出力した文字を、カーソルを文字の先頭に移動させて、再度取得する方法は? カーソルの移動はエスケープシーケンスで行っています。 cursesを利用すれば表示した文字を再度取得することは可能なのですが、エスケープシーケンスを標準出力する方法が判らないのでしかたなくprintfを使っているという状況です。 cursesでエスケープシーケンスを標準出力できればよいのですが。。。 printfの文字取得、もしくはcursesでのエスケープシーケンスの標準出力、 について情報お持ちの方、回答よろしくお願いします。 |
>>3278 keijirou > printfで画面出力した文字を、カーソルを文字の先頭に移動させて、 > 再度取得する方法は? 原理的に無理でしょう。自分で出力した文字を覚えておくくらいしか ない (≒curses の再実装) と思います。 > カーソルを文字の先頭に移動させて これを curses で行えばよいだけのように見えますが、curses では ダメな理由があったりしますか? |
>>3279 68user 早速の回答ありがとうございます。 printfの文字を再度取得することは無理なんですね。 実際にprintfで出力した文字の先頭に、cursesで移動して、文字取得を行ったところ、何も取得できませんでした。 おそらく、cursesが持っているバッファからデータを持って来るようなので、printfの文字は取得されないものと思われます。 扱うデータがエスケープシーケンス入りのデータなので、printfがそのまま使えれば、解析せずに済むかと思い、質問させて頂きました。 また、画面に表示した文字のハードコピーを印刷するのにprintfの文字を再取得しようと考えてました。 もし、なにかよい方法がありましたら、またよろしくお願い致します。 |
>>3280 keijirou > printfの文字を再度取得することは無理なんですね。 そうですね。stdio ライブラリは出力した文字を覚えていませんし、 kterm などの端末エミュレータも受け取った文字を覚えていません ので。 # もし端末エミュレータが覚えていたとしても、アプリが # 端末エミュレータに文字を問い合わせるような仕組みがない。 > 扱うデータがエスケープシーケンス入りのデータなので もし curses がそのようなデータを扱えるとしたら、 1. curses が出力するデータの中身を解析し、エスケープシーケンス取得。 2. 環境変数 TERM を見て、エスケープシーケンスがその端末でどのような 挙動をするのかを調べる。 3. エスケープシーケンスを出力する代わりに、curses のライブラリを叩く。 という機能を持ってないといけないでしょうが、多分そのような 機能はないと思います。 データがエスケープシーケンス入りと言っても、ごく限られた 数種類程度のエスケープシーケンスではないですか? もしそうであれば、自前でデータを解析し、エスケープシーケンスを 出力する代わりに curses のライブラリ関数を呼ぶ、ってのが簡単 そうな気がします。 |
muleで韓国語を入力したまではよかったのですが・・・ 印刷しようとすると化けてしまいます。 コマンドを教えてください。 p.s 「any2ps hangul.tex | lpr -Pstd1pr1」を試してみましたが、 結果は、m2ps: Invalid argument: hangul.tex でした・・・。 |
>>3281 68user 回答ありがとうございます。 やはり、自前でエスケープシーケンスを判断しなければいけないようですね。 その方向で開発をすすめてみます。 いろいろとありがとうございました。 |
>>3282 ゆう 韓国語関連は全く知りませんが、引数ではなく標準入力から 渡さないといけなんじゃないですかね? http://www.tk.airnet.ne.jp/nagae/jp/comp/mule/any2ps.html |
私はネットワークについて初心者で、検索ページからこのサイトを拝見しました。噛み砕いた説明のおかげで理解しやすくとても参考になり、本当に感謝しています。ありがとうございます。 |
シェルの環境変数で宣言している物が,未定義変数だといわれ止ってしまいます。エラーが出ない場合のほうが多いのですが,さっきまで回っていたものが、未定義だと言われてとまってしまい,困っています。 なにか、アドバイスいただければ幸いです。 |
find コマンドで検索するときに、サブディレクトリを検索させない ようにすることは、出来ますか? (例)find / -name *.txt とすると、/配下のディレクトリまで検索してしまいますが、そうでは なくて、/だけを検索させたいのですが‥ ちなみに、Solarisを使用しています。 |
いつもお世話になります 早速ですが、cursesの関数で、現在のカーソル位置を記憶する、および 記憶したカーソル位置の復帰を行う関数は存在するでしょうか? 自前で現在位置を覚えておいて、wmoveで移動する方法しかないのでしょうか? |
UNIXの部屋のリファレンスを求めて初めておじゃましました。 ちょっと気づいたのですが、文字コードの指定がない上にShift_JISや EUCが混在していたりするため、しばしばブラウザが文字コード判定に失敗するようです。 <head>中に<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">等の表記を入れて頂ければうれしく思います。 |
>>3285 umio ありがとうございます。わかりにくい記述などを見つけたらぜひ教えてください。 >>3286 ゆみ > なにか、アドバイスいただければ幸いです。 情報不足です。ここらへん http://www.hyuki.com/writing/techask.html#procedure を読むとよい質問ができるようになると思います。 >>3287 bebe > find コマンドで検索するときに、サブディレクトリを検索させない > ようにすることは、出来ますか? > ちなみに、Solarisを使用しています。 GNU find などなら find / -maxdepth 1 ですが、Solaris の find では できない、と思っています。無理矢理やるなら % find `ls -dF /* | egrep -v '/$'` -type f -name \*.txt とかですが、「そんなの ls /*.txt でいいじゃん」と言われるでしょうね。 >>3288 keijirou > 現在のカーソル位置を記憶する、および記憶したカーソル位置の復帰を > 行う関数は存在するでしょうか? curces の全関数を知っているわけではないですが、多分存在しないんじゃ ないでしょうか。 >>3289 通りすがり > 文字コードの指定がない上にShift_JISやEUCが混在していたりするため、 > しばしばブラウザが文字コード判定に失敗するようです。 対処します (8月中にはなんとか…)。 しかしすべてのページは EUC-JP で統一していると思っていたんですが、 Shift_JIS なページがありましたっけ? |
文字コードなんですけど、いろいろな種類のブラウザで 全く文字化けが起きないようにするには工夫がいるみたいです。 特にApache 1.3系では、 ・ApacheのAddCharset設定で日本語コードを指定しておく ・各ページにMETAタグを入ておく の両方を行わないとだめみたいです。 かなり古い話ですがApache 1.3.12の頃からそうなってます。私の経験では <Directory /> Options FollowSymLinks AllowOverride None AddCharset ISO-2022-JP html AddCharset ISO-2022-JP htm AddCharset ISO-2022-JP shtml AddCharset ISO-2022-JP shtm </Directory> でISO-2022-JPで決めうちしたあと METAタグでShift_JISにしたりEUC-JPにするといい感じでした。 http://www.asahi-net.or.jp/~AE5T-KSN/apache/charset-problem.html |
と思って実際の設定を調べてみたのですが、普通に AddCharset EUC-JP html 等で済ませてました。これとMETAタグ併用でした。 |
はじめましてperlをはじめて半年レベルです。 貴殿のページでネットの勉強はじめましたが、レンタルサーバーのためtelnetが使えません。参考のplを実行させたいのですがどうすればやれますでしょうか。 初歩的な質問で申し訳ありませんがご指導ください。 |
>>3291 Netboy > ・ApacheのAddCharset設定で日本語コードを指定しておく > ・各ページにMETAタグを入ておく これ、いまだに迷っているのですが、HTTP ヘッダに charset を 含めるのと、meta で書くのとどっちがいいんですかね。 前者だと、ローカルにある HTML ファイルを直接ブラウザで見たりなんか すると、charset がないのでエンコーディングを誤判定してしまいます。 # IE は保存時に meta 埋めてくれますが。 でも meta だと、ファイルのエンコーディングを変えたらいちいち charset を変更しなければいけないのか、って話になりますし。 個人的には、エンコーディングくらいブラウザが自動的に (そして もっと賢く) 判定しろよ、と思います。 > http://www.asahi-net.or.jp/~AE5T-KSN/apache/charset-problem.html これについては、apache のソースをいじって charset=iso-8859-1 を 削る対応が好きです。と言っても、x68000.startshop.co.jp では やってませんが。 >>3293 kazu > レンタルサーバーのためtelnetが使えません。 ftp でサーバに CGI スクリプトを置いておくだけでいいです。 と言っても、telnet 可能かどうかは作業効率に大きく関わるため、 telnet 可なサーバに乗り換えることをお勧めします。 乗り換えたくないなら、ローカルにも perl や web サーバを入れ、 サーバ側とできるだけ同じ環境を構築して、ローカルでテストが 可能なようにしておくとよいでしょう。 |
>これ、いまだに迷っているのですが、HTTP ヘッダに charset を >含めるのと、meta で書くのとどっちがいいんですかね。 世間ではMETA優先なんじゃないでしょうか。 でもcharsetでiso-8859-1が来るとコード自動判別とMETAタグが 両方とも無効になるブラウザがあるので charsetで何か日本語コードが来るようにしないとだめみたいです。 >でも meta だと、ファイルのエンコーディングを変えたらいちいち >charset を変更しなければいけないのか、って話になりますし。 そういう場合は文字コード判別&タグ入れをスクリプトで自動化して 一括して行うしかないと思います。 全然参考にならなくて済みません。 |
>ftp でサーバに CGI スクリプトを置いておくだけでいいです。 いろいろ試しましたがよく解りませんでした。 ありがとう御座いました。 |
>>3293 kazu >ftp でサーバに CGI スクリプトを置いておくだけでいいです。 いろいろ試してみましたがうまく行きませんでした。 ありがとうございました。 |
UNIXサーバを自動運転で動かしています。 管理する他のクライアントから、起動・シャットダウンの命令を自動で行うように設定してあります。 一昨日から、UNIXサーバを起動する(自動運転)と時刻がシャットダウンした後(直後の時刻)になってしまいます。 端末については、正常な時刻になっています。 特にntpを使用している訳でもありません。 何か考えられる原因はありますでしょうか? また、怪しい部分などがありましたら教えてください。 |
>>3298 user326 > 何か考えられる原因はありますでしょうか? まぁ一番に疑うべきはハード故障なんでしょうね。手動でシャット ダウンしたらどうなるんでしょうか。 > 端末については、正常な時刻になっています。 これは意味がわかりませんでした。端末が時刻を保持している はずはないし、端末からログインして date を叩くと見ると 正常な時刻ということなら、さらに謎な挙動ですね。 |
Netboy さんと startshop さんと両毛インターネットさんの ご好意で使わせていただいておりました このサーバですが、 諸事情により使えなくなりそうです。 いつ使えなくなるかは現時点ではわかっていないのですが、 もしいきなり接続できなくなった場合は、 http://210.249.139.22/ http://home.jp.freebsd.org/~matsu/ のいずれかに移転のお知らせを出します。 が、わたしは現在ネットカフェ経由でないとこのマシンに ログインできないという情けない状況なので、お知らせが 遅れるかもしれませんがご了承ください。 |
とりあえずサーバ自体はしばらく残していただけるそうですが、 ドメインはどうなるかわかりません。 もし急に x68000.startshop.co.jp の名前が引けなくなったら http://210.249.139.22/~68user/ で見てください。 |
初めまして。 ネットワークプログラミングの基本を勉強したいと思い、いつも拝見させていただいています。 今はFTPクライアントを勉強中のところなんですが、どうしてもわからないところがあり、教えていただきたいと思って書き込みます。 68userさんのプログラムを参考にした上で、Passiveモードを使ってFTPサーバのファイルリストを取得するのみのプログラムを組んでいます。 サーバ側にまずUSER、PASSコマンドを送信するところまでは成功しました。(レスポンスを見て確認しました) しかし、その後にPASVコマンドを送っても、サーバから何の応答もありません。 これは何が悪いのでしょうか? ちなみに相手サーバは、インフォシークのレンタルweb用のFTPサーバです。 |
>>3302 ken なんでですかね。仮に PASV 未対応の FTP サーバであっても、 500 Commando not understood 程度は返してくると思います (今どき PASV 未対応はありえないと 思いますが)。 一般的に、あらゆる ftp クライアントにデバッグモードが実装されて いると思うので、まずは今お使いの ftp クライアントで試して、 デバッグ表示を見るのがよいでしょう。 それでも解決しなかったら、telnet で USER・PASS・PASV を叩いた 結果を (ユーザ名・パスワード部分は隠した上で) 見せてください。 あと、もし問題なければ > インフォシークのレンタルweb用のFTPサーバ のホスト名を教えてください。 |
はじめまして、ソケット通信を勉強したくてこちらのHPにたどりつきました。すみませんがひとつ質問させてください。 ソケット通信でindex.htmlというファイルの中身は取得できたのですが、同じようにしてindex.cgiというファイルを指定すると The requested URL /index.cgi was not found on this server.<P> という返信が返ってきてしまいます。実行ファイルの場合は何か指定の仕方が違うのでしょうか。 どうぞ宜しくお願い致します。 |
>>3304 SL > 実行ファイルの場合は何か指定の仕方が違うのでしょうか。 同じリクエストの仕方で問題ありません。 http://www.asahi.com/index.html は取得できるのに http://www.asahi.com/index.cgi は取得できないのはなぜか? asahi.com が index.cgi を置いてないからです。 |
>>3304 68user ご回答ありがとうございました。 > asahi.com が index.cgi を置いてないからです。 確かにそのとおりでした。すみません。 自分で置いてテストしたのですが、確認したら指定を間違えていました。 他サイトにあるスクリプトをソケット通信で実行したいと思って、やっているのですが、ブラウザからは実行できるのにソケット通信だとできないので、もしかしたら実行ファイルは他の設定があるのかと考えてしまいました。 ブラウザからは実行できるのにソケット通信では実行できないということはあるのでしょうか。 宜しくお願い致します。 |
>>3306 SL > 他サイトにあるスクリプトをソケット通信で実行したいと思って、 > やっているのですが、ブラウザからは実行できるのにソケット通信 > だとできないので これは index.cgi とは別の問題ですか? どんなリクエストを送っているかを明らかにしていただくのが早い んですが、まぁ想像するに Host ヘッダを送ってない、てなところでは ないかと思いました。 いずれにせよクライアントを作る前に telnet で試してみてください。 |
>>3307 68user ご回答ありがとうございます。 > これは index.cgi とは別の問題ですか? 他のサイトにあるスクリプトが実行できないので、自分のところにスクリプトを置いて実験しているだけですので、困っていることはひとつです。 > んですが、まぁ想像するに Host ヘッダを送ってない、てなところ Hostヘッダというのは送ってないような気がします。68userさんが公開してくださっているソースをそのまま使っただけですので。 ご指摘のhostヘッダの件が問題点のような気がします。 http://www.shop-link.net/tie-up/test/socket4.txt ソースは上記です。すみませんが見ていただけますか。 宜しくお願い致します。 |
>>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 ヘッダを追加してみてください。 |
>>3309 68user ありがとうございました。 なんとか動くようになりました。 Hostヘッダを追加して、proxyを使用しないようにしました。 本当にありがとうございました。 また何かありましたら宜しくお願い致します(^^; お礼と言ってはなんですが、メルマガ出してますので、何か宣伝したいことがあったらメールして下さい。<m(_w_)m> |