[表示 : 全て 最新50 1-99 101- 201- 301- 401- 2chのread.cgiへ]
Update time : 05/09 19:49 / Filesize : 97 KB / Number-of Response : 416
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 21:07:24 ]
主にソケットに関しての質疑応答スレッドです。

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

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

前スレ
ネットワークプログラミング相談室 Port22
pc11.2ch.net/test/read.cgi/tech/1222603744/
関連スレ
Java ネットワークプログラミング 【教えて!】
pc11.2ch.net/test/read.cgi/tech/1086238859/

320 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 20:35:40 ]
普通はそのインターフェースのプライマリアドレス

321 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 21:24:44 ]
>>320
ちゃんとプライマリとか見てくれるのか
ありがとー


322 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 06:32:35 ]
何でこの板IDないの?

323 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 07:49:43 ]
紳士だからさ


324 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 09:44:13 ]
変態という名の紳士

325 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 22:47:12 ]
地震キタ

326 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 01:07:46 ]
thread_Aにてepoll_wait中に、thread_Bからepoll_ctlで監視対象fdを操作(EPOLL_CTL_DELとか)しても、
即座にthread_Aで止まってるepoll_waitは反映してくれない?

というか、epoll_fdに対しての非同期操作は自分で排他処理しないとダメ?

327 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 10:50:58 ]
>>320
まともなOSならそんなことしない。
インターフェイスへの複数アドレス付与を、付け焼刃で実装したOSならあるかもしれんけど。

>>321
そのホストのルーティングテーブルを参照して、接続先アドレスに到達可能な最小コストのルートを選択して、
接続元とするアドレスが決められる。
インターフェイスAに、10.0.0.1/24と、192.168.0.1/24が振られてて10.0.0.1がプライマリだったとしても、
192.168.0.2に接続するときには、192.168.0.1がsourceとして使われる。


328 名前:デフォルトの名無しさん [2009/02/10(火) 11:25:55 ]
んー
同じセグメントのIPが複数振られてたらどっちが使われる?



329 名前:デフォルトの名無しさん [2009/02/10(火) 11:26:06 ]
プログラム言語はなぜ「言語」と呼ばれるのでしょう?
通常使っている言語とどのような共通点があるか?
またどのような相違点があるか?

という問題を誰か教えてくれませんか?

330 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 11:40:40 ]
>>329
ウィキペれ。

331 名前:デフォルトの名無しさん [2009/02/10(火) 11:43:37 ]
ウィキにのってないポ(;・∀・)

332 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 11:45:36 ]
>>328
>>327に書いてあるでしょ。

333 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 13:56:50 ]
>>332
同じインタフェースに 192.168.0.1/24 と 192.168.0.2/24 が振られているときに
192.168.0.254 に接続したらどうなるか、って話でしょ。>>327には書いてないと思うが。

Linuxの場合、ソースをチラ見しただけだがプライマリを使うようになってる
っぽいな。明確な仕様なのかはよく知らないけど。


334 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 22:47:46 ]
質問です。

UDPソケットでrecvした時に複数のパケットがくっついて読み込まれる事ってありえますか?

335 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 22:53:52 ]
あり得ません。



336 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 23:00:45 ]
>>335
ありがとうございました

337 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 23:01:28 ]
おい、誰の発言かわからん一言を、そんなに簡単に信じちゃうのかよ。

338 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 23:18:03 ]
>>337



339 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 23:27:58 ]
本当はどうなんでしょうか?

340 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 23:32:09 ]
わかりません

341 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 23:36:14 ]
>>339 RFC 読めばええんちゃう?


342 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 00:01:12 ]
普通にありえる。

343 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 00:08:08 ]
OSのバグみたいな、よっぽどのことがない限りないでそ。

344 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 00:08:56 ]
OSと何の関係が

345 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 00:12:19 ]
UDPソケットって何?

346 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 00:17:01 ]
そう来ますか

347 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 00:21:59 ]
343じゃないが、
>>334は「recv」と書いており、これはOSのAPIと理解できる。
UDPのRFCでは、OSのAPIの事は、

User Interface
--------------
A user interface should allow

the creation of new receive ports,

receive operations on the receive ports that return the data octets
and an indication of source port and source address,

and an operation that allows a datagram to be sent, specifying the
data, source and destination ports and addresses to be sent.

しか規定しておらず、複数のパケットを一つにまとめてrecvするOSがあってもよい。
ただし実際そういうAPIを持つOSはいまだかつて見たことがないが。

以上のことはRFCを読んだことがある人間には常識なので、
>>344は読んだことがないのだろう。

上に書いたような意味において、>>334への返答は「あり得ません。」
この返答で正しい。

348 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 00:22:18 ]
IEEE Std 1003.1, 2004

recvのDescriptionから
>For message-based sockets, such as SOCK_DGRAM and SOCK_SEQPACKET,
>the entire message shall be read in a single operation.



349 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 00:27:18 ]
で、このshallはもちろん仕様書に良くある強制のshallなので、
パケットを纏めてしまうと、すくなくとも、POSIXは満たさなくなる。

>shall
>For an implementation that conforms to IEEE Std 1003.1-2001,
>describes a feature or behavior that is mandatory.
>An application can rely on the existence of the feature or behavior.

350 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 00:27:19 ]
最初から書いとけ馬鹿

351 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 01:29:43 ]
みなさん、ありがとうございました

352 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 03:41:46 ]
何に対して礼を言っているのだ

353 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 03:42:37 ]
始めてみようかと思うんですが。
まずなにからすればいいんでしょうか?
ダイアログにWebBrowserコントロールを張り付ければいいんですか?


354 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 03:43:12 ]
>>352
みなさん ではないんでしょうか?

355 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 10:16:31 ]
>>353
スレ違い。

356 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 10:38:13 ]
>>347-349
力抜けよ

357 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 11:20:27 ]
アッー!

358 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 17:23:26 ]
なんだこの流れは…たまげたなぁ



359 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 21:00:32 ]
>>353 はもっと評価されていい。

>始めてみようかと思うんですが。
何をだ!?と思った次の瞬間、

>まずなにからすればいいんでしょうか?
いや知らんがなー!と突っ込まずにはいられない。

360 名前:デフォルトの名無しさん [2009/02/12(木) 01:38:36 ]
神との対話を見た

361 名前:デフォルトの名無しさん [2009/02/12(木) 09:32:53 ]
どこに書けばいいのかわからないので、お手数ですが。
Rubyで書いた、ウェブページとそこのリンク先を取り込むスクリプトを
動かしていたら途中でconnect refusedになって以後つながりません。
"www.linux.org"だったんですけど、他では問題ありません。
図書館でやっても途中で切れました。
某図書館では"www.linux.org"につながらなくなっているかもしれませんゴメンナサイ。
いったいどうゆうことなんでしょうか。
なにが気に入らなかったんでしょうか。
まる二日たちますが、接続拒否は解除されるんでしょうか。

362 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 10:45:59 ]
>>361
一度に多接続すると制限されることはあるね。
どれくらいの期間制限されるかはサイトのポリシーだから一概には言えないね。

363 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 13:50:33 ]
接続拒否されるってどんなスクリプト流したんだよ・・・

364 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 14:25:13 ]
既存サイトを攻撃してはいけません

365 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 15:22:03 ]
一度でも攻撃受けたとこはこの辺厳しい

366 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 15:26:12 ]
なんて迷惑な奴

367 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 19:14:35 ]
お約束ですが
通報しました

368 名前:デフォルトの名無しさん [2009/02/12(木) 20:17:07 ]
www.itmedia.co.jp/news/articles/0902/12/news091.html



369 名前:デフォルトの名無しさん [2009/02/12(木) 20:20:41 ]
IPアドレスを取得まではできたのですが、
取得したIPアドレスを利用して「ping」をうちたいのですが
どうしたらpingをうつプログラム書けますか?
手順を教えてください(ex 関数などを)

370 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 20:29:12 ]
使ってる言語くらい書け。

371 名前:デフォルトの名無しさん [2009/02/12(木) 20:50:31 ]
C言語です。

372 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 22:04:37 ]
ping()

373 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 22:20:59 ]
なんで途中までは出来た、みたいな言い方になってんだ

374 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 22:57:05 ]
>>369 ping したいんだけだたら system("ping ...")


375 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 23:26:29 ]
おまいら、理解力の無い俺に救いの手を・・・

ルータ越しにサーバーとクライアントのプログラムを走らせるとして、
サーバーをSourcePort10000で立ち上げる。
クライアントをSourcePort5000、DestinationPort10000でサーバーに接続する。

この場合、サーバー側のポート10000を空けないと接続できないんだけど、
クライアント側はポートを空けなくても送受信できちゃいます。
なんでなの?(´・ω・`)

376 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 23:29:40 ]
インバウンドしかブロックしないファイアーウォールなんだろ

377 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 23:33:44 ]
>>375
> サーバーをSourcePort10000で立ち上げる。

SourcePort→AcceptPort

378 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 23:37:00 ]
>>376
クライアントは受信もできちゃうんだけど
そゆものなの?(´・ω・`)

>>377
AcceptPortだったか
ありがとうございます。



379 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 23:57:36 ]
>>378
そゆものでしょ

380 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 01:01:06 ]
>>379
そんなのいやだぁぁぁ
ちゃんと理解したいぃぃぃ

なんでポート開いてないのに受信できるの!

( ゚д゚)<誰かぁぁぁぁ

381 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 01:18:21 ]
>>380
ファイアーウォールは外向きのパケットが通るとその発信元ポート、アドレス、
及び通信先ポート、アドレスの4組の情報を「セッション」として覚える。
パケットが帰って来るとそのセッションに当てはめ、一致するセッションがあれば
通してあげる。

382 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 01:32:24 ]
SPI

383 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 01:39:11 ]
>>381
おー、そうなのですか
だからサーバーはポート開けないとダメなのかー
理解できますた。
分かりやすい解説ありがとうございましたヽ(´ー`)ノ

>>382
SPIググってみました。
Stateful Packet Inspection
これか、これなのか!
勉強になりますたヽ(´ー`)ノ


384 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 15:31:17 ]
ヽ(´ー`)ノヽ(´ー`)ノヽ(´ー`)ノヽ(´ー`)ノヽ(´ー`)ノ

385 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 20:54:37 ]
無免許でのネットワークプログラミングは処罰の対象ですよ。

386 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 20:57:16 ]
また大阪か

387 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 21:38:50 ]
ネットワーク従事者の許認可は逓信省電波管理局の管轄です

388 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 10:16:09 ]
免許は逓信大臣が交付じゃね?



389 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 10:28:44 ]
情報処理技術者試験 (ネットワーク) は、橋本龍太郎 通産大臣 (当時) だったな。

390 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 23:35:59 ]
高負荷になるとrecvがECONNRESETを返すようになってしまいます。
なにか心当たりがある方いらっしゃいますか?

391 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 23:38:14 ]
>>390
リモートのホストに聞いてください。

392 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 23:41:18 ]
「おらくたびれただよ、ちょっと休ませてくれかの?」

393 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 00:50:10 ]
>>391

リモートのホストもこちらの制御下なのですが。。


394 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 00:50:39 ]
じゃあ聞けよ。

395 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 00:50:59 ]
どうやって制御してるの?

396 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 01:21:34 ]
>>395
リモートのホストに聞いてください。


397 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 01:23:55 ]
>>396
ちがう。

リモートのホストが>>393の制御下にあるというから、
どうやって制御しているのかを聞いている。

398 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 10:39:33 ]
いろいろ説明不足ですいません。。

クライアントでrecvするとECONNRESETが返ってきます。
サーバ側でアクティブ・クローズしてるのですが、これが原因なんですかね?
処理の流れとしては、以下のような感じになっています。

client    server
       accept
connect
send
       recv
       send
recv     close (クライアントのrecvとサーバのcloseとのタイミングが問題?)
close

よく考えると、サーバ側でsendしても実際は送られてない可能性が高いので、
その後すぐcloseしてしまうのは、問題な気もしますが、
高負荷でないとこの方法でうまく行きます。
(うまく行ってる場合は、たまたまsendがすぐにデータを転送していたということでしょうか?)
サーバ側では、sendしたあと、peerがcloseしたのを確認した後にcloseするのが
いいのでしょうか?
(recvで0が返ってくるまでcloseしないとか)

どなたかご教授ください





399 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 11:00:24 ]
>>398
> (recvで0が返ってくるまでcloseしないとか)

& shutdown

400 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 11:00:38 ]
>>398
最後サーバからなにsendしてるのかしらんけど
双方のパケットの内容はモニターしてチェックしたの?
してないんだったらまずはそっからじゃね?

401 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 11:00:44 ]
>>398
www.kt.rim.or.jp/~ksk/wskfaq-ja/newbie.html#howclose

402 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 11:45:12 ]
>>399,401
ありがとうございます。

1. データ送信を完了する。
2. shutdown()をhowパラメータを 1 に設定して呼び出す。
3. recv()が 0 を返却するまでループする。
4. closesocket()を呼び出す。

1の「送信を完了する」というのは、実際に送信が完了したかの確認ではなく、
send(write)を呼んでstatusがOKかを確認するということでいいんですかね?

とりあえず、試してみます。

403 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 11:57:05 ]
そだね、最後にちゃんとFINの立ったTCPセグメントを送ってやるって事。
recv側はちゃんとFINの立ったTCPセグメントを食ってやるって事。
それでどちら側もちゃんとshutdownできる。
何も難しいことはやってない。


404 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 19:23:21 ]
非同期ソケットでFD_READの通知がきたとき
int ret = recv(socket , buf , 128 , 0 );//whileループは使わない。
ret == -1はあるきがするのですが(ブロッキングなど)
ret == 0はあるのでしょうか?
ブロッキングソケットの場合はrecvでとまっているので ret == 0で切断などであるとは思うのですが。

405 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 02:39:11 ]
マニュアルにないと書いてなければあると思わなければいけない。

406 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 10:35:44 ]
>>361ですが、やっとこ、つながりました。一週間でしたね。
サーバー管理している皆様
セキュリティは、ほどほどにお願いします。

407 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 10:38:02 ]
お前氏んでいいよ

408 名前:デフォルトの名無しさん [2009/02/17(火) 12:21:38 ]
>>407
おまえの母ちゃんよりマシ。



409 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 12:39:25 ]
サーバー管理者から害のあるスクリプトと認定されるものを走らせてアク禁くらって
まるでサーバー管理者側が悪いかのような口のきき方すれば
罵声を浴びるに決まってるだろ

人のことをとやかく言う前にまず自分のスキルを上げろって話さ

410 名前:デフォルトの名無しさん [2009/02/17(火) 14:13:00 ]
>>409
あっそ

411 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 14:58:21 ]
>>410
うん
そういうこと

412 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 15:01:41 ]
まあ普通にサーバ管理者に問い合わせれば済む話だしな。

413 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 18:00:16 ]
一応書いておきますが、406と408、410は、別人です。
わたしは、どのみちシロウトです。

414 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 18:38:28 ]
>>413の付け足しですが。
>>406は、ただ最後にちょっと気の利いたことを書いておこうと
思っただけです。
気に障ったらすみません。
でもネットには、けんかを買いたい人が待ち構えてるんだね。
>>408には、笑った。

415 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 19:40:55 ]
ネットにはよそのサイトをDoSしても開き直っている奴いるしね。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<97KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef