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しても開き直っている奴いるしね。