Perlでsocketを使う場合

socket( SOCK, AF_INET, SOCK_STREAM, getprotobyname('tcp'));

のように書きますが人のスクリプトを見ると「AF_INET」だったり
「PF_INET」だったりします。これはどちらが正しいのでしょうか?

このQ&Aに関連する最新のQ&A

A 回答 (1件)

PFは「ProtocolFamily」の略で、socket関数へ送るもの。


AFは「AddressFamily」の略で、connectで使うアドレス指定です。
Internetではアドレス指定がひとつしかない、つまり同値なので
とりあえずはどちらでも問題なく使えます。

うろ覚えですが参考程度に。(^^;
詳しい方いましたら補足お願いします。
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QMr. Sato will now be in charge of sales. のnow

Mr. Sato will now be in charge of sales.
サトウさんはこれから販売を担当することになる。

という例文がありました。

ここに now が入るのが少し気になっています。

Mr. Sato will be in charge of sales.
だと、この先いつからの事なのか分からないのでnow が入っているのだと思いますが、
Mr. Sato will be in charge of sales from now. でも同じでしょうか?

元の文のように、will と be の間に入る場合、前置詞は不要でしょうか?

細かい疑問で恐縮ですが、宜しくお願いします。

Aベストアンサー

「now」だけで「今から」という意味にもなります。特に「will」などの未来の表現があるときはそうではないでしょうか。
「Mr. Sato will now be in charge of sales.」において前置詞が不要なのは、「now」が副詞として機能しているからです。

「Mr. Sato will be in charge of sales from now.」では「now」という名詞に、起点を表す前置詞「from」がついて「今から」という意味になっています。

一つ付け加えると、「from now」より「from now on」の方が好ましいですね。

Qperl,ruby,phpは同系列?

ずっとphpとcgiは同じ分野で同レベルだとおもっていたのですが、perlとphpが同じでどちらもCGIなんでしょうか?教えて下さいお願いします。

Aベストアンサー

CGI(Perl)はページを作るのに
1から構築しなければならないのに対し、

PHPは
1から構築したり、JavaScript(以下JS)のように
HTMLに部分的に組み込むことができます。

機能としては、
CGIは基本機能と拡張機能があり、
モジュール(関数集みたいなもの)というものを利用することによりあらゆる機能を使うことができます。

逆にPHPは
拡張機能がないといってもいいでしょう
ただ拡張機能は自分で作ろうと思えば作れるのですが。

速さは、状況にもよりますが
PHPのほうが早いといわれています
ただ、サーバのほうで設定によっては
Perlのほうが早くなっていることもあります。

PHPは新しく
ヴァージョンが新しくなるにつれていろいろな機能が増えています。しかしサーバを管理している人が常に新しいヴァージョンに設定していなかったり、設定により使えなかったりすることもあります。

その点Perlは古くから存在しているので
サーバを変えて使えなくなるということはありません。

セキュリティー的には
断然Perlのほうが強く
PHPはいまだにバグがあるといわれています。

最後にまとめとして、
どっちもどっちなので
上を参考に簡単なプログラムなら
PHPのほうが楽かと思いますが
サーバの状況により使えないと考えたら
Perlに変えたほうがよいと思います。

CGI(Perl)はページを作るのに
1から構築しなければならないのに対し、

PHPは
1から構築したり、JavaScript(以下JS)のように
HTMLに部分的に組み込むことができます。

機能としては、
CGIは基本機能と拡張機能があり、
モジュール(関数集みたいなもの)というものを利用することによりあらゆる機能を使うことができます。

逆にPHPは
拡張機能がないといってもいいでしょう
ただ拡張機能は自分で作ろうと思えば作れるのですが。

速さは、状況にもよりますが
PHPのほうが早いといわれています
...続きを読む

Qdue to limitations in amount of charges - 退任の理由

こんにちは。和訳のアドバイスをお願いいたします。

ある会社のニュースレターの中で、意味が分からないところがあります。

<タイトル>
Resignation of two auditors due to limitations in amount of charges

<本文>
Company A announces the resignation of two auditors, Mr. B and Mr. C, as they exceed the limits in such charges established by the issuing regulations.

2人の監査役が退任した理由は何なのでしょうか?
chargesは責務という意味でしょうか?'the issuing regulations'が何を指しているのかもよく分かりません。ちなみに、このニュースレターは上記の文章から始まっており、それに続く文章の中にも手がかりらしきものが見当たりません。

Aベストアンサー

原文を拝見しましたところ、会社側もはぐらかして書いているような印象を受けます。つまり二名の辞任は名誉なことでなく、むしろ何かをやらかして「解雇」されたのだろうと察します。

ご存知の通り、charge とは「告発、訴状」という意味があります。でも、その場合は amount ではなく number of charges と言うような気がするのです。

ふと思ったのですが、charge とは会社がこれら二名に付与していたクレジットカードのこと、amount は課金額のことだと考えると、少なくとも文章のツジツマが合いませんか? 会社が決めていたリミットを越えて直接業務とは関連性がない課金が何回もあり、社内調査の結果、明らかに違法・不正と見なされるものだったとしたら、引責で辞任に追い込まれることもあるでしょう。二人となると共犯なのでしょうか、要するに「使い込み・横領による解雇」ということです。

文章だけを元にした全く想像ですので、ご参考までに。是非ご質問者に究明して頂きたいです。

Q現在、html,cgi(perl),javascriptを主に使用して

現在、html,cgi(perl),javascriptを主に使用して、ホームページを作成しています。
作成中いくつか自分だけでは作成につまってしまった部分を質問させていただきます。

まず1つが、通常のhtmlやcgiでIE上に表示させているホームページのそのページを、
ページ上のボタンをクリックすることでwordやexcelに保存するということは可能なのでしょうか?

次に2つ目として、フォームから送信し、textファイル内に日付を付けて保存してあるデータから、
特定の日付のデータを抽出して別ページに表示することは可能でしょうか?

どちらか1つだけでもよろしいので、回答お願いします。

Aベストアンサー

前者はサーバサイドでwordなりexcelなりを生成して送り返してるやりかただね。
(pdf作成サイトとかと仕掛けは一緒)
これはwordやexcelの書類形式が(バイナリ的に)どうなってるか知らないとできない。(最近のはxml形式みたいだからどうにかなる気がする)
後者は、textがユーザローカルの場合無理。formのfileでサーバ側に一度uploadしてもらいサーバサイドで処理して埋め込むなりクッキーにするなり。(通常は埋め込む)
textというのがサーバ側のならjavascriptかクッキーで橋渡しが楽だと思う。

Q次の文のin charge ofは誤文?

「娘たちは侍女たちに預けて逃がしてくだされ。」

の英訳を見ると、

「Let my daughters escape in charge of attendants.」

とありました。

しかし、辞書を確認すると、

http://irleigo.blog105.fc2.com/blog-entry-314.html

で書かれてあるように、

『「of 以下の人に任せる」と言う意味で使う場合は

charge の前に the を置く』

とありました。

最初に示した英訳文は誤文でしょうか?

Aベストアンサー

ジーニアス英和辞典にもおっしゃるような記述がありますが,
研究社の英和大辞典では
in (the) charge of ~「~に預けられて,保護されて」
a patient in (the) charge of a nurse「看護師に委ねられている患者」
とあります。

ランダムハウス英和大辞典にも
アメリカ英語として
in charge of 人で「人の支配・管理・責任下に,世話になって」
とあります。

of 自体,主格関係・目的格関係いずれもありますので,
どちらにもとれる余地はあると思います。
the の有無でいくらでもこじつけはできると思いますが,
in search of ~とか,慣用的に the はとれるものです。

let, escape などの語で,監督者,被監督者が明確というのもあるでしょう。

また,he のような代名詞で「彼の監督下で」なら in the charge of him とするより,
in his charge とする方が普通です。

QPerlでuse socketを使用してファイルを送信

Perlでuse socketを使用してファイルを送信する方法を教えてください。

先日、別サーバーのcgiへデータを送信する方法をここで質問し、socketを教えていただきました。

■質問
http://oshiete1.goo.ne.jp/qa3344300.html
■回答で紹介されたQ&A
http://oshiete1.goo.ne.jp/qa2808695.html

この方法でテキストデータは、data1=abcdのように書くことで送信ができました。

ファイルを送る場合は、どのように書けばよいのでしょうか?
htmlで表現すると、以下のように複数のファイルをpostで送信したいのです。
<input type="file" name="data1">
<input type="file" name="data2">

よろしくお願いします。

Aベストアンサー

すみません、この前答えたの私ですが、multipartのデータを送るんでしたね。
基本的には、
http://oshiete1.goo.ne.jp/qa2808695.html
なんですが、Content-Typeの指示と、$dataの中身が違います。
上記に付け加えてみました。
以下でどうでしょうか。
エラーチェックはしてません。
考え方は正しいと思いますが、とりあえずチェックしていないので・・・

#!/usr/local/bin/perl
use strict;
use CGI::Carp qw(fatalsToBrowser);
use CGI;
use Socket;

my $host = "http://www.サーバーB.jp";
my $path = "Server_B.cgi";
my $file="c:\data.bin";

#バイナリデータ読込み
my $fdata;
open(IN,$file);
read(IN, $fdata, -s($file));
close(IN);

#送信データ作成
my $boundary = "----------boundary";
my $data;

#バイナリデータ
$data.="--$boundary\r\n";
$data.="Content-Disposition: form-data; name=\"file\"; filename=\"$file\"\r\n\r\n";
$data.=$fdata."\r\n";

##他にもバイナリデータがある場合($file2を$fdata2に読んでいた場合)
#$data.="--$boundary\r\n";
#$data.="Content-Disposition: form-data; name=\"file\"; filename=\"$file2\"\r\n\r\n";
#$data.=$fdata2."\r\n";

##他にも通常変数がある場合(aaa=123を渡す場合)
#$data.="--$boundary\r\n";
#$data.="Content-Disposition: form-data; name=\"aaa\"\r\n\r\n";
#$data.="123\r\n";

#終わりマーク
$data.="--$boundary--\r\n";

#----------------接続処理-------------------
socket(SOCKET, PF_INET, SOCK_STREAM, 0);
connect(SOCKET, pack_sockaddr_in(80, inet_aton($host)));
select(SOCKET); $|=1; select(STDOUT);
#------------HTTPリクエスト送信-----------------
print SOCKET "POST /$path HTTP/1.0\r\n";
print SOCKET "Content-Type: multipart/form-data; boundary=$boundary\r\n";#ここが増えてる
print SOCKET "Content-Length: ".length($data)."\r\n";
print SOCKET "\r\n";
print SOCKET $data;#$dataがmultipart用データ
#------------サーバからのデータを受信 -----------------
while (<SOCKET>){print $_;}

すみません、この前答えたの私ですが、multipartのデータを送るんでしたね。
基本的には、
http://oshiete1.goo.ne.jp/qa2808695.html
なんですが、Content-Typeの指示と、$dataの中身が違います。
上記に付け加えてみました。
以下でどうでしょうか。
エラーチェックはしてません。
考え方は正しいと思いますが、とりあえずチェックしていないので・・・

#!/usr/local/bin/perl
use strict;
use CGI::Carp qw(fatalsToBrowser);
use CGI;
use Socket;

my $host = "http://www.サーバーB.jp";
m...続きを読む

QIn practical life this mode of thin

In practical life this mode of thinking will have the same effect upon the personal mind as that which is secured in a wire that is not charged when it touches a wire that is charged.


以下の文章があります。(古い精神哲学書の一節です。)この文章が意図することをご教示いただけないでしょうか?

In practical life this mode of thinking will have the same effect upon the personal mind as that which is secured in a wire that is not charged when it touches a wire that is charged.


ご参考までに前の文の後には、以下の文章が続きます。
Thegreat within is a live wire; when the mind touches the great within, it becomes charged more and more with those same immense powers;~

In practical life this mode of thinking will have the same effect upon the personal mind as that which is secured in a wire that is not charged when it touches a wire that is charged.


以下の文章があります。(古い精神哲学書の一節です。)この文章が意図することをご教示いただけないでしょうか?

In practical life this mode of thinking will have the same effect upon the personal mind as that which is secured in a wire that is not charged when it touches a wire that is charged....続きを読む

Aベストアンサー

電気関係のことが分からないのでちょっとずれた回答になる可能性大ですが、一応こんな感じではないかと思いました。
「実際の生活においてこの思考モードは、ちょうど帯電していないワイヤーが帯電しているワイヤーに触れたとき内部に獲得されるのと同じような効果を、個人の心に与える」

QCGI perlでこんなスクリプトをご存知ないでしょうか?

一覧表があって、そこに仮に5個の名前があるとします。

ログインして自分のデータを変更や訂正。
更新されると、一覧表の順序内において、
一番先頭に表示される。

これって一番近いのは、やっぱり掲示板なんでしょうか?
もしこれに近い、無料配布されているサンプルを
ご存知でしたら、お教えいただけませんか?

Aベストアンサー

基本は名簿管理…なのでしょうか?

以下のものはどうでしょうか、更新順に表示も可能です。

■Miniりすと
http://www.minicgi.net/cgi2/list.html

参考URL:http://www.minicgi.net/cgi2/list.html

Qpreferral of charges の訳は?

裁判規定の誓約関する文章に出てくる
preferral of charges の訳を教えてください。

Aベストアンサー

私は法律は専門外です。検索すると出て来ます。
http://www.tpub.com/content/administration/14135/css/14135_201.htm
http://www.justia.com/dictionary/preferral-of-charges.html
に詳しい解説があります。原告側が被告の罪の重さを指定提案する法手続きです。

QApachでCGI(Perlスクリプト使用)を動かすときに先頭の#!に関係なく実行できるようにするには。

ApachでCGI(Perlスクリプト使用)を動かすときに先頭の#!のPerlを動かす場所(?)を指定する行が無かった場合や、違う場合でも、Apachが勝手にperlの場所を解釈しスクリプトを実行してくれるようになるhttpd.confの設定方法ってありますか?

Aベストアンサー

> CGI(Perl使用)の部分もあるので、ローカルで実際に動かしてからサーバにアップしています。
> ローカルでの実行環境がApach(for win32)+ActivePerlで、サーバにアップするときにわざわざ#!部分を変更しなければなりません。それが少々めんどくさいので
> 質問したわけであります。

発想の転換をしてみてください。
要するに「she-bang 書き換えが面倒くさい」だけなんですよね?

Apache に依存させるのではなく、ActivePerl を入れなおして、ディレクトリをあわせてみてはいかがでしょうか。
ActivePerl をインストールする際に、例えばサーバ側が
/usr/bin/perl
だった場合、
c:\usr
フォルダを作っておいて、インストール先を c:\usr にしておけば、perl インタプリタの実行ファイルが c:\usr\bin\perl.exe になります。
she-bang を #!c:\usr\bin\perl とすればいいのは勿論なんですが、Apache を介せば、UNIX 表記でも問題ないので、#!/usr/bin/perl と記述することが可能です。当然それなら、いちいち書き換えなくても、サーバ側でそのまま利用することが可能です。

コツとしては、perl のパスの bin ディレクトリの上位まで、Windows 上に作っておいて、インストール先として、そこまで指定します。

/usr/local/bin/perl としたい場合は、c:\usr\local フォルダを作っておいて、インストール先として c:\usr\local を指定すれば、自然と bin ディレクトリが作られ、その中に perl.exe がインストールされます。
で、CGI として使用したいファイルの先頭を
#!/usr/local/bin/perl とすれば、サーバでも Win 環境でも共用できる she-bang が書けますので、そういうことを気にしなくてもいいと思います。
私はかれこれ 3 年間、この方法を使ってます。

> CGI(Perl使用)の部分もあるので、ローカルで実際に動かしてからサーバにアップしています。
> ローカルでの実行環境がApach(for win32)+ActivePerlで、サーバにアップするときにわざわざ#!部分を変更しなければなりません。それが少々めんどくさいので
> 質問したわけであります。

発想の転換をしてみてください。
要するに「she-bang 書き換えが面倒くさい」だけなんですよね?

Apache に依存させるのではなく、ActivePerl を入れなおして、ディレクトリをあわせてみてはいかがでしょうか。
A...続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング