トップページ⇒tech
1001コメント360KB

ネットワークプログラミング相談室 Port24

■ このスレッドは過去ログ倉庫に格納されています
0001lmtp2009/07/07(火) 00:46:28
主にソケットに関しての質疑応答スレッドです。

Programming UNIX Socket FAQ (日本語訳)
 http://www.kt.rim.or.jp/~ksk/sock-faq/indexj.html
Winsock Programmer's FAQ (日本語訳)
 http://www.kt.rim.or.jp/~ksk/wskfaq-ja/

関連リンクは>>2-10辺り
足りなかったら適当に付け足してね

前スレ
ネットワークプログラミング相談室 Port23
http://pc12.2ch.net/test/read.cgi/tech/1230466044/
関連スレ
ネットワークプログラミング雑談
http://pc12.2ch.net/test/read.cgi/tech/1235800707/
Java ネットワークプログラミング 【教えて!】
http://pc11.2ch.net/test/read.cgi/tech/1086238859/
0488デフォルトの名無しさん2009/08/27(木) 01:09:15
>>486
同時に着くって言うのはないよ。
タイミングが近いってだけで、処理自体は常に1つしか行われないんだから
通信だって1つのデータを送受信中に別のデータを送受信はできない
0489デフォルトの名無しさん2009/08/27(木) 01:13:22
>>488

では、

while{

recvform

受信したバッファを別のバッファにうつす

}

という処理をしておけば、受信バッファに上書きされることはありえないということでしょうか?
たとえ、近いタイミングでこようが
0490デフォルトの名無しさん2009/08/27(木) 01:18:15
>>489
そうなる
0491デフォルトの名無しさん2009/08/27(木) 01:28:23
>>490
別のバッファをうつしている最中に、データが来たら先ほどどなたかおっしゃってたように
OSのバッファへと一時的にいれられるわけであってますか?
それをrecvformでとりだす。

ただし、socketせいせいしている場合に限る

結局はrecvform自体、OSのバッファから取り出しているってことなのでしょうか?
オプションでタイムアウト時間指定してやるのも、このOSのバッファの中が指定した時間空なら
受信エラーをかえすってイメージでしょうか
0492デフォルトの名無しさん2009/08/27(木) 01:45:02
>>491
そんな認識であっていると思うよ

Socketが必要なのは
たとえばデータが送られてきたとき、どのプログラムにそのデータを渡せばいいと思う?
Socket生成しbindさせることによって、特定ポートに送られてきたデータを特定のプログラムに渡すことができる。
もしそのポートにbindされたプログラムがなければOSはそのデータを破棄することになる。
0493デフォルトの名無しさん2009/08/27(木) 02:51:12
まあM$の出来そこないOSだと破棄されるわな。
Linuxの使用を推奨する。
0494デフォルトの名無しさん2009/08/27(木) 03:47:26
>>487
環境は?
0495デフォルトの名無しさん2009/08/27(木) 06:27:18
winsockを使ってgethostname();とgethostbyname();で自分のIPアドレスを調べたら
http://www.ip-checker.net/
こういうサイトで調べて出てくるアドレスと違っています。これはどういうことでしょうか?
0496デフォルトの名無しさん2009/08/27(木) 06:37:37
プロバイダに苦情言えば直るよ
0497デフォルトの名無しさん2009/08/27(木) 07:01:54
初歩的なことかもしれませんがお願いします。
0498デフォルトの名無しさん2009/08/27(木) 07:33:38
>>497
ルータがアドレス変換してるから。
NATとかでぐぐれば分かる。
0499デフォルトの名無しさん2009/08/27(木) 08:22:35
>>493
linuxではbind前に遡ってデータを受信できるのか? こりゃ、吃驚だ。w
0500デフォルトの名無しさん2009/08/27(木) 08:45:46
>>498
ルータを介さない自分のグローバルIPを取得する関数もしくは鉄板な方法ありますか?
0501デフォルトの名無しさん2009/08/27(木) 09:13:06
127.0.0.1
0502デフォルトの名無しさん2009/08/27(木) 09:13:40
IPっていうな。クズ。
0503デフォルトの名無しさん2009/08/27(木) 10:26:30
>>500
自分はグローバルIPアドレスをもってない可能性が高い。
0504デフォルトの名無しさん2009/08/27(木) 10:28:26
>>502
なんでIPって言っちゃいけないの?
0505デフォルトの名無しさん2009/08/27(木) 10:49:26
「IPアドレス」のことを、単に「IP」と言うな、と。
0506デフォルトの名無しさん2009/08/27(木) 10:57:27
ネットワークプログラミングのスレだし、正確な用語を使わないとまぎらわしい。
0507デフォルトの名無しさん2009/08/27(木) 11:10:14
はあ?
だから何でIPと言っちゃいけないの?
0508デフォルトの名無しさん2009/08/27(木) 11:15:59
「グローバルIP」などというのは無いからだ。無いものを取得する事は出来ない。
分ったら消えろ。
0509デフォルトの名無しさん2009/08/27(木) 11:23:21
説明できないの?
アホですか?
0510デフォルトの名無しさん2009/08/27(木) 11:40:14
電話番号聞くときに「お前の電話教えてよ」と聞くのと同じだな
意味はわからなくないが、厳密に言えば間違い
0511デフォルトの名無しさん2009/08/27(木) 11:57:36
コミュニケーション能力の無い奴を構ってやるなよ…
0512デフォルトの名無しさん2009/08/27(木) 12:02:39
>>509
理解できないの?
アホ確定ですね。
0513デフォルトの名無しさん2009/08/27(木) 13:12:08
むかしっから釣り的な意味であるんだよ>>IP
スルーしる
0514デフォルトの名無しさん2009/08/27(木) 13:17:17
>>502
お前も二度と「レス」とか「携帯」とか使うなよ
0515デフォルトの名無しさん2009/08/27(木) 13:24:18
アドレスって呼べば良いのに。
0516デフォルトの名無しさん2009/08/27(木) 13:25:15
>>514
あぁ、見かけたら「使うな。クズ」と言っていいぞ。ww
0517デフォルトの名無しさん2009/08/27(木) 13:52:06
netstatコマンドで接続元のIPと接続先のIPが表示できるけど
ipv6とかで、IPが長いと省略されてしまうんだけど
IPを省略しないで表示させるにはどうしたらいいのかな。
0518デフォルトの名無しさん2009/08/27(木) 14:27:15
わざとやってんのか、いいかげんにしろ
0519デフォルトの名無しさん2009/08/27(木) 14:37:52
普通IPっていったらIPアドレスだろ
いちいち反応するやつの方がうぜえ
日本語の省略文化が判ってない馬鹿
0520デフォルトの名無しさん2009/08/27(木) 15:15:29
WikipediaをWikiと省略するほうが馬鹿だろ。
0521デフォルトの名無しさん2009/08/27(木) 15:32:02
Wiki - pedia たが?
0522デフォルトの名無しさん2009/08/27(木) 15:39:22
>>518
わざととしか思えないからスルー白
0523デフォルトの名無しさん2009/08/27(木) 17:00:12
>>520
どっちも同じ。
0524デフォルトの名無しさん2009/08/27(木) 17:19:32
ああ、バカの程度が同じ、ってことか。びっくりした。
05255002009/08/27(木) 18:25:53
もうやめてくれ俺はただ>>495のサイトで出てくるようなアドレスを自分のPC内で取得したいだけなんだ
0526デフォルトの名無しさん2009/08/27(木) 18:31:28
>>525
自分のアドレスがプライベートだったら内部だけで解決するのは無理だな
ダイナミックdnsの自動更新の仕組みとか調べたら参考になるかも
0527デフォルトの名無しさん2009/08/27(木) 18:35:47
シェルスクリプトをシェルってゆーな。
0528デフォルトの名無しさん2009/08/27(木) 18:39:28
ルーターがWAN側アドレスを教えてくれるやつもあるよね
SOAPとかで取得するやつ
0529デフォルトの名無しさん2009/08/27(木) 18:44:12
>>528
それでもPC内だけでって要望には応えられないんだよな
0530デフォルトの名無しさん2009/08/27(木) 18:48:07
NAT越しでネットにつないでいるのであれば完全に絶望だな
0531デフォルトの名無しさん2009/08/27(木) 19:04:50
>>500
一般的な方法は存在しない。
一般的でない方法ならたくさんあるのでそれを何通りも使って保険かける。
0532デフォルトの名無しさん2009/08/27(木) 20:31:28

おまえの電話教えてよ
↓
おまえの番号教えてよ
↓
おまえ何番だっけ

05335172009/08/27(木) 22:14:11
どなたかお願いします
0534デフォルトの名無しさん2009/08/27(木) 22:15:31
>>500
ttp://www.ip-checker.net/ のようなサイトをHTTPで叩いて
出てきたHTMLをパースすればOK
0535デフォルトの名無しさん2009/08/28(金) 00:19:54
bind処理で、ポートだけ指定してbindするのと
ポートとIPの両方を指定してbindするのでは、

負荷って変わりますか?
bindしないIPとbindしないポート宛のデータが、bindするデータと混ざって送られてくるとして

とあるIP以外からは、とあるポートに送られてこないデータ送信があるとします。
そんな中で、IPとポートの二つをbindする必要があるかってことです。
ポートだけでも受信しないんだから、IPのbindしなくてもいいのでは?
負荷が変わらないもしくは、負荷が下がるならそっちのがいいような
0536デフォルトの名無しさん2009/08/28(金) 00:22:09
すみません、ついでにもう一つ
ブロードキャストで送信した場合って、ポートをbindしていたら受信できませんよね?
ブロードキャストはポート指定して送信できますか?
0537デフォルトの名無しさん2009/08/28(金) 00:47:09
535は放置で
0538デフォルトの名無しさん2009/08/28(金) 00:49:07
ルータを通して出てくるアドレスって普通のIPアドレスみたいにダブったりしないんですか?
0539デフォルトの名無しさん2009/08/28(金) 01:00:49
アイちゃん壊れちゃったね、引退しよっか

http://chimp-sanctuary.org/oursanctuary/hitori.htm
引退(ヒトが勝手に引退と決めるだけなのですが)となったチンパンジーは、
人目につかない非公開の場所で単独飼育されるのが一般的です。それは、
40〜50年と言われるチンパンジーの寿命を考えると、ほとんどの人生をその
狭い檻の中で送ることになります。
0540デフォルトの名無しさん2009/08/28(金) 01:04:46
>>538
何が聞きたいのかさっぱりわからん
0541デフォルトの名無しさん2009/08/28(金) 01:08:55
>>540
たとえば111.111.111.111がルーターを介したアドレスだとしたら、111.111.111.111に何か送ればその人に確実に届いて他のPCに行くことは無いのかということです。
0542デフォルトの名無しさん2009/08/28(金) 01:13:03
すみません、>>535お願い致します。

bindでポートとIP両方指定した場合と、ポートだけ指定した場合では
負荷は違うのでしょうか?弾く層が違う?

ちなみにそのポート宛に届くのは、bindするIPアドレスだけからだとして
0543デフォルトの名無しさん2009/08/28(金) 01:44:22
>>533
linuxなら /proc/net/tcpとか、/proc/net/udpとかに生データが書いてあるんで、
それ解析すればいい。フォーマットは見たら大体分かる。
その他のOSなら知らね。
0544デフォルトの名無しさん2009/08/28(金) 01:49:07
なんだかプログラミング以前の質問が多いけど、そういうのは別のところでやった方がいいとおもうよ。
0545デフォルトの名無しさん2009/08/28(金) 02:01:26
>>541
ルータの設定による。
0546デフォルトの名無しさん2009/08/28(金) 02:04:59
>>545
たとえばどんな影響が出ますか?
0547デフォルトの名無しさん2009/08/28(金) 02:08:04
目的のPCに届くかもしれないし、パケット捨てられるかもしれないし、別のPCに届くかもしれないし、エラーが帰ってくるかもしれない。
0548デフォルトの名無しさん2009/08/28(金) 03:02:57
>>535,542
一般的にbindでIPアドレス指定が必要になるのは、
ネットワークインターフェイスが複数(2コ以上)ある場合で、
受け付けるインターフェイスを限定したい場合だけ。
ルータみたいに。普通のアプリでは指定する必要なし。
0549デフォルトの名無しさん2009/08/28(金) 05:30:57
>>547
普通のアドレスと同じように使えるということですか?
0550デフォルトの名無しさん2009/08/28(金) 07:21:02
ok
0551デフォルトの名無しさん2009/08/28(金) 07:53:02
>>549
普通のアドレスってなんだよ
異常なアドレスってのもあるのか?
0552デフォルトの名無しさん2009/08/28(金) 07:58:24
>>548
2個以上有る場合は絶対していしないといけないってことでしょうか?
0553デフォルトの名無しさん2009/08/28(金) 08:03:59
>>535,542
IPってゆうな。クズ。
0554デフォルトの名無しさん2009/08/28(金) 08:30:10
>>552
受信したいインタフェースを限定したいなら。
05555172009/08/28(金) 11:12:19
>>543
ありがとうございます。調べてみます。
0556デフォルトの名無しさん2009/08/28(金) 11:14:08
>>552
IPをふたつ持ってても、どっちからも受信したいなら指定する必要はない
(というかどっちのIPでも着信するようにデフォルトで設定している)
どれかひとつのIPでだけ受信したいなら設定する必要がある。
0557デフォルトの名無しさん2009/08/28(金) 11:20:25
IPってゆうな。クズ。
0558デフォルトの名無しさん2009/08/28(金) 11:23:08

 IP
  - |    ←不機嫌な顔
 IP
0559デフォルトの名無しさん2009/08/28(金) 20:15:03
IP抜くぞゴルア
0560デフォルトの名無しさん2009/08/29(土) 00:27:58

 IP
  - )    ←愉快な顔
 IP

0561デフォルトの名無しさん2009/08/29(土) 00:41:20
プログラム以前のインターネットプロトコル話は通信板でもどうぞ。
0562デフォルトの名無しさん2009/08/29(土) 07:04:41
米人は口で感情を読み取り、日本人は目で読み取る、ってどっかに書いてあった。(^^;
0563名無しさん@そうだ選挙に行こう2009/08/30(日) 14:11:34
IPは、IPアドレスの略だろJK
そういえば、HPをいちいちwebページと訂正する要領の悪いしったかいたなw
(初心者相手にそこまで説明する必要ないんだよw)
0564名無しさん@そうだ選挙に行こう2009/08/30(日) 14:26:04
HewlettePackard
0565名無しさん@そうだ選挙に行こう2009/08/30(日) 14:34:55
>>563
省略するなよ Internet Protocol Address だ。
0566名無しさん@そうだ選挙に行こう2009/08/30(日) 15:14:29
それじゃあソースなのかデストなのか判らんじゃないか
省略するなお
0567名無しさん@そうだ選挙に行こう2009/08/30(日) 15:17:29
v4かv6かも必要だお
0568名無しさん@そうだ選挙に行こう2009/08/30(日) 16:39:23
Internet Protocol Address のことを、シロウトはアイピー、プロはアドレスって略すんだよ。
0569デフォルトの名無しさん2009/08/30(日) 21:00:36
>>568
するどいw
0570デフォルトの名無しさん2009/08/30(日) 22:00:24
じゃあああアドってことにしようぜ
0571デフォルトの名無しさん2009/08/30(日) 22:45:54
まあプロトコル無視したプロなんだろうな
0572デフォルトの名無しさん2009/08/30(日) 23:18:41
IPと略されると、それがIPアドレスかプロトコルかどっちだってことだけど、
アドレスって略されると、IPアドレスなのかMACアドレスなのか、メモリアドレスなのかとかいろいろ可能性があって逆に迷惑だぞ

IPと略されたほうがまだいい
0573デフォルトの名無しさん2009/08/30(日) 23:25:34
>>572
IPと言った場合、プロトコルのことだぞ。
0574デフォルトの名無しさん2009/08/30(日) 23:40:21
>>572 素人は黙ってろ
0575デフォルトの名無しさん2009/08/31(月) 00:03:41
>>573
携帯電話のことを携帯っていわないの?
0576デフォルトの名無しさん2009/08/31(月) 00:09:06
>>575
携帯電話のことを話って言うのか?
0577デフォルトの名無しさん2009/08/31(月) 00:12:07
IPといったらアドレスで同意だろ
IPは、UDPとか答えてたら頭おかしい
0578デフォルトの名無しさん2009/08/31(月) 00:14:58
IPといったらInternet Protocolで同意だろ
IPは、アドレスとか答えてたら頭おかしい
0579デフォルトの名無しさん2009/08/31(月) 01:01:18
携帯電話の省略形は「ケータイ」
0580デフォルトの名無しさん2009/08/31(月) 01:02:59
> IPは、UDPとか答えてたら頭おかしい
意味不明。素人は黙ってなさい。
0581デフォルトの名無しさん2009/08/31(月) 01:04:05
正式名称はNPだが今はRPとかSPとか言われとるねw
0582デフォルトの名無しさん2009/08/31(月) 09:20:19
>>579
言ってろ低脳
0583デフォルトの名無しさん2009/08/31(月) 09:27:03
「ケータイ」はPHSとかの似非携帯の通称だよ
0584デフォルトの名無しさん2009/08/31(月) 09:33:23
>>582-583
残念ながら、キミタチが無知なだけ。
0585デフォルトの名無しさん2009/08/31(月) 10:04:46
携帯自体はそれだけで意味をなさないから
携帯電話をケータイと略しても意味が通じるが
IPはそれだけで意味を持つからダメ
0586デフォルトの名無しさん2009/08/31(月) 12:17:27
おまえら他所でやれ
0587デフォルトの名無しさん2009/08/31(月) 14:45:32
いいよ
自称プロなんて見てればすぐばれるんだからw
■ このスレッドは過去ログ倉庫に格納されています