[表示 : 全て 最新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/

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