ネットワークプログラミング相談室 Port23at TECH
ネットワークプログラミング相談室 Port23 - 暇つぶし2ch369:デフォルトの名無しさん
09/02/12 20:20:41
IPアドレスを取得まではできたのですが、
取得したIPアドレスを利用して「ping」をうちたいのですが
どうしたらpingをうつプログラム書けますか?
手順を教えてください(ex 関数などを)

370:デフォルトの名無しさん
09/02/12 20:29:12
使ってる言語くらい書け。

371:デフォルトの名無しさん
09/02/12 20:50:31
C言語です。

372:デフォルトの名無しさん
09/02/12 22:04:37
ping()

373:デフォルトの名無しさん
09/02/12 22:20:59
なんで途中までは出来た、みたいな言い方になってんだ

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


375:デフォルトの名無しさん
09/02/12 23:26:29
おまいら、理解力の無い俺に救いの手を・・・

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

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

376:デフォルトの名無しさん
09/02/12 23:29:40
インバウンドしかブロックしないファイアーウォールなんだろ

377:デフォルトの名無しさん
09/02/12 23:33:44
>>375
> サーバーをSourcePort10000で立ち上げる。

SourcePort→AcceptPort

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

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

379:デフォルトの名無しさん
09/02/12 23:57:36
>>378
そゆものでしょ

380:デフォルトの名無しさん
09/02/13 01:01:06
>>379
そんなのいやだぁぁぁ
ちゃんと理解したいぃぃぃ

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

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

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

382:デフォルトの名無しさん
09/02/13 01:32:24
SPI

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

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


384:デフォルトの名無しさん
09/02/13 15:31:17
ヽ(´ー`)ノヽ(´ー`)ノヽ(´ー`)ノヽ(´ー`)ノヽ(´ー`)ノ

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

386:デフォルトの名無しさん
09/02/13 20:57:16
また大阪か

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

388:デフォルトの名無しさん
09/02/14 10:16:09
免許は逓信大臣が交付じゃね?

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

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

391:デフォルトの名無しさん
09/02/14 23:38:14
>>390
リモートのホストに聞いてください。

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

393:デフォルトの名無しさん
09/02/15 00:50:10
>>391

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


394:デフォルトの名無しさん
09/02/15 00:50:39
じゃあ聞けよ。

395:デフォルトの名無しさん
09/02/15 00:50:59
どうやって制御してるの?

396:デフォルトの名無しさん
09/02/15 01:21:34
>>395
リモートのホストに聞いてください。


397:デフォルトの名無しさん
09/02/15 01:23:55
>>396
ちがう。

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

398:デフォルトの名無しさん
09/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:デフォルトの名無しさん
09/02/15 11:00:24
>>398
> (recvで0が返ってくるまでcloseしないとか)

& shutdown

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

401:デフォルトの名無しさん
09/02/15 11:00:44
>>398
URLリンク(www.kt.rim.or.jp)

402:デフォルトの名無しさん
09/02/15 11:45:12
>>399,401
ありがとうございます。

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

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

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

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


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

405:デフォルトの名無しさん
09/02/17 02:39:11
マニュアルにないと書いてなければあると思わなければいけない。

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

407:デフォルトの名無しさん
09/02/17 10:38:02
お前氏んでいいよ

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

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

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

410:デフォルトの名無しさん
09/02/17 14:13:00
>>409
あっそ

411:デフォルトの名無しさん
09/02/17 14:58:21
>>410
うん
そういうこと

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

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

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

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


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch