1 名前:ftp-data mailto:sage [2007/08/07(火) 01:47:35 ] 主にソケットに関しての質疑応答スレッドです。 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 辺り 足りなかったら適当に付け足してね 前スレ ネットワークプログラミング相談室 Port19 pc10.2ch.net/test/read.cgi/tech/1159692799/ 関連スレ Java ネットワークプログラミング 【教えて!】 pc11.2ch.net/test/read.cgi/tech/1086238859/
331 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 22:45:35 ] Linux使いなのでコード等よくわからんが、 ネットワークプログラミングのデバッグならパケットキャプチャだ。 WindowsならWiresharkがあるはず
332 名前:デフォルトの名無しさん [2007/11/03(土) 22:54:04 ] Wiresharkだったらこの間入れたはず。 でも、英語だらけで使い方がよく分からずに放置した記憶が・・・! syn、ackってTCPの3wayHandshakeとかの話ですよね? そんなところまで見れるとはなんと便利なソフトなのだろうか。 とりあえず使い方から調べなおしてちゃんと根本から問題解決するか・・・
333 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 23:15:51 ] 333ゲット
334 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 23:22:26 ] ところでみなさんGUIのネットワークプログラムを作るときは 非同期ソケットでスレッド1本派 同期ソケットでマルチスレッド派 のどっちですか?
335 名前:デフォルトの名無しさん [2007/11/03(土) 23:34:09 ] なんとかパケットキャプチャは出来たけど、実際見てもよく分からないという現実! kjm.kir.jp/pc/?p=45801.png No.10-12が多分最初の接続ですね。その後のポート5000がファイル送受信用の接続です。 ポート番号については突っ込まないで下さい>< 最後の方で色々とsynとackを送りまくってますが、ここら辺がソケット破棄して再設定してconnect()してるあたりですかね・・・。 俺の知識じゃ、これ見て でっていう レベルなんですが・・・
336 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 23:41:58 ] よくわからんがNo.30とNo.50の 192.168.0.185:3739 -> 192.168.0.186:5000 に185が応答していないように見えるが。 ファイル送受信用、と言われても・・・そんなの話に出てきてないから・・・
337 名前:デフォルトの名無しさん mailto:sage [2007/11/04(日) 00:01:32 ] XP Homeはサーバ用途が制限されていたような
338 名前:デフォルトの名無しさん [2007/11/04(日) 00:01:49 ] >>336 >>324 で一応書いたつもりでしたが、ちょっとゴチャゴチャして見にくかったですねm(_ _)m 多分34、50、63のSYNを送ってサーバからの応答がないままタイムアウトになって、 ソケット破棄、ソケットの再生成と再設定⇒connect()が67で、その後の応答とかが68、69で 接続が確立してるっぽいですね。それ以降のものはファイル送受信のパケットだと思います。 見る限り、サーバからのACKが返ってこないようですが、クライアントからのSYNは送られてるんですよね。。。 サーバにそれが届いてないか、サーバに届いてるけど、サーバが送り返してくるSYN,ACKが途中でパケットロスしてるのか・・・。
339 名前:デフォルトの名無しさん mailto:sage [2007/11/04(日) 00:11:49 ] >>338 ポート5000からの応答が無いな。そっちを調べるしかないだろ。
340 名前:デフォルトの名無しさん mailto:sage [2007/11/04(日) 00:13:42 ] >>335 ポート5000ってのはナンダヨ。サーバー側のプログラムが悪いんじゃないのか。
341 名前:デフォルトの名無しさん [2007/11/04(日) 00:29:10 ] >>340 ん、どういう事ですか?あまり49151以下の予約済みポートは使わない方がいいって事ですか? とりあえずサーバ側のプログラムを再度見直してみます。
342 名前:デフォルトの名無しさん mailto:sage [2007/11/04(日) 00:34:25 ] >>334 ケースバイケースだろ。
343 名前:デフォルトの名無しさん mailto:sage [2007/11/04(日) 01:49:58 ] netlinkの使い方を日本語で詳しく説明してるサイトないかな? Manpage of NETLINK以外で
344 名前:デフォルトの名無しさん [2007/11/04(日) 06:18:34 ] サーバ側が、50000番の接続要求に反応しない理由を調べたほうがいい。 1.サーバ上で、50000番への接続受付が満杯 2.サーバ上で、50000番がまだ再利用可能ではない(サーバ上で、netstatして50000番の状態を調べれ) 4.サーバが再起動した 3.パケットロスが発生してる(ローカルネットワークじゃ考えにくいと思う) 1,2,3,4の順で可能性は高いと思う
345 名前:323&328 mailto:sage [2007/11/04(日) 07:14:35 ] >>341 ファイアウォールのログは見てみた? SYN floodか何かに判定されてコネクション要求がファイアウォールで破棄されていないかな、 と思ったんだが。 …もしかして、俺、考えている方向ずれてる? そうだとしたら、すまん。 クライアントとサーバのプログラムにログ出力を付け加えて、コネクションの確立の 様子を見るのもあり。connectやacceptの前後といった場所に、printf()で良いから 付け加えて、クライアントとサーバの両方の処理がどのように、どこまで出来ているのか 確認するってことで。
346 名前:デフォルトの名無しさん mailto:age [2007/11/04(日) 07:56:09 ] youtubetv.atspace.com/?Lof5N8D6NMI0747@TokyoDisneySeaBraviseamoHDV
347 名前:デフォルトの名無しさん [2007/11/04(日) 09:14:42 ] FreeBSD上でプログラムを組んでいて不思議な事に出くわしたので相談します。 IPアドレスを入力し、そのアドレスのネットマスクを取得するプログラムを組んでいますが、 ICMP_MASKREQを使って取得しています。しかし、AlliedTelesisのL3スイッチではきちんとICMP_MASKREPLY が返ってくるのに、CISCOのルータやPCだと応答がまったく返ってきません。 これはプログラムミスか、単にCISCOのルータがRFCに準拠していないのか・・・ どうでしょうか?意見をお願いします。
348 名前:デフォルトの名無しさん mailto:sage [2007/11/04(日) 10:52:27 ] >>347 > CISCOのルータ Firewallで捨てられてるとか? ルーターのicmpカウンタをチェック。 > PCだと ホストは必ずしも答える義務無し。
349 名前:デフォルトの名無しさん [2007/11/04(日) 11:22:08 ] >>348 ヒントありがとうございます、CISCOルータにて、ip mask-reply コマンドでMASKREPLY を有効にしたところ期待通りにプログラムが動きました、デフォルトでno ip mask-reply になっているようです。 PCでは答える義務無しですか、残念。 SNMP以外でネットマスクを取得する手段を考えていたのですが・・・ 考え直してきます。
350 名前:デフォルトの名無しさん mailto:sage [2007/11/04(日) 11:48:20 ] >>349 > SNMP以外でネットマスクを取得する手段 MASKREQUESTって聞いているホストが使うべきマスクを問い合わせるのに 使うのでしょう? 問い合わされたホストのマスクを返すのではなくて。 昨今はDHCPで取得される情報なのでほとんど使われない機能。
351 名前:デフォルトの名無しさん mailto:sage [2007/11/04(日) 11:52:28 ] RFC1812はデフォルトで答える事をMUSTにしてるので、お前が設定したのだろう。
352 名前:デフォルトの名無しさん [2007/11/04(日) 12:23:40 ] すれ違いで申し訳ないんですが、 googleでXXXを検索。 のように、webページに引数を渡す?みたいな事ってどうやればうまく できますか?
353 名前:デフォルトの名無しさん [2007/11/04(日) 12:34:23 ] >>350 勘違いしていました、指摘ありがとうございます。 たしかにそうですね・・・、実験で確認がとれました。 MASKREQUESTで問い合わせたアドレスのネットマスクを取得する考えは根本から間違ってました。 >>351 ルータ初期化して試してみましたが、デフォルトでno ip masu-replyになってました。
354 名前:デフォルトの名無しさん mailto:sage [2007/11/04(日) 12:37:34 ] ヒント:URI、クエリ、GET要求
355 名前:デフォルトの名無しさん [2007/11/04(日) 13:53:11 ] >>354 ヒントありがとうございます! 大変助かりました!
356 名前:デフォルトの名無しさん mailto:sage [2007/11/04(日) 14:15:27 ] >>353 iosのバージョンとかにもよるんじゃないの。 デフォルトのイメージが書き換えられてる場合もあるし。
357 名前:デフォルトの名無しさん mailto:sage [2007/11/04(日) 14:16:09 ] おまいら、IOSとかCiscoの製品使える? やっぱネットワーク系のプログラム組んでる人間としてCCNAぐらい取っておくべきかな?
358 名前:デフォルトの名無しさん mailto:sage [2007/11/04(日) 14:19:54 ] そんな暇あったら、カマー本やスティーブンス本読破すれば? 基本的な知識あれば、ルータ設定くらい簡単だよ。
359 名前:デフォルトの名無しさん mailto:sage [2007/11/04(日) 14:46:40 ] 自分の力に自信が無くて 資格を求めてるんだろ。 取るのを勧めてやるのが優しさだよ。 もっとも俺ならプログラムなんてもう辞めろと言うけどね。
360 名前:デフォルトの名無しさん mailto:sage [2007/11/04(日) 20:27:40 ] >>351 RFC1812が書かれた当時とは実情が変わるなんて良くあること。 ciscoのマニュアルによると。 ip mask-reply To have the Cisco IOS software respond to Internet Control Message Protocol (ICMP) mask requests by sending ICMP mask reply messages, use the ip mask-reply command in interface configuration mode. To disable this function, use the no form of this command. Defaults Disabled <<<<<< コマンドが導入されたのはIOS 10.0。
361 名前:デフォルトの名無しさん mailto:sage [2007/11/05(月) 22:27:16 ] プログラマからみたIOSっていうとXMLみたいなもんだからなぁ
362 名前:デフォルトの名無しさん mailto:sage [2007/11/06(火) 18:17:05 ] 全然違うぞw
363 名前:デフォルトの名無しさん [2007/11/10(土) 13:29:28 ] IPv4かIPv6かわからないときgetaddrinfoを利用し調べる方法が ttp://ja.wikipedia.org/wiki/IPv6の下のほうに書いてありました Windowsではws2tcpip.hに宣言がありました getaddrinfoへ渡したaddrinfoのai_addrを利用し、IPv4かIPv6のアドレスを取得すると思われるのですが ai_addrの型はsockaddrでその定義はwinsock2.hにしかなくそれは以下のようになっていました struct sockaddr { u_short sa_family; /* address family */ char sa_data[14]; /* up to 14 bytes of direct address */ }; これだと8*14==112で、IPv6アドレスを表すための128bitに足りないような気がするのですが思い違いでしょうか?
364 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 13:37:49 ] sockaddr_in6にキャストしてつかうんじゃね?
365 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 13:41:07 ] sockaddr sockaddr_in sockaddr_in6 でググれ
366 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 13:44:34 ] FTPの同時接続数とレスポンスをまとめたサイト知ってる方います? 並列は3回線くらいがいいのかな・・・
367 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 15:40:26 ] 環境によって違う。 >>363 もっとCの勉強した方がいい。
368 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 18:09:19 ] 計算もできない馬鹿がいるって 聞いて飛んできました どこどこ? u_shortが8bitってどんな頭してるんだよw 染んでこいよw
369 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 18:12:03 ] >>368 顔から火を噴きながらとんでけ
370 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 18:30:01 ] 氏ねとは言い過ぎだが レベルの低いやつは質問しない されても無視するようにしないか?
371 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 19:57:12 ] さすがに今ではshortが8bitってことはほとんど無いが・・・ 逆に16bitであり続ける理由も無いな
372 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 20:00:28 ] そう考えると結構恐ろしいんだよな プロトコルにつかう構造体はバイト単位じゃなくて オクテット単位か出来ればビット単位で定義すべきなんだよな
373 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 20:09:49 ] Cには2進表記すらない。 0b1_01110_00
374 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 20:10:40 ] >>371 殆どない、じゃなくて、規格上ありえませんが。 16bitより大きい可能性はあるけど。
375 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 20:14:32 ] 現実を知らず 教科書しか読まない奴は レスしない方がいいよ。
376 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 20:16:45 ] >>375 アホ表明ですか。毎度ご苦労様です。
377 名前:375 mailto:sage [2007/11/10(土) 20:18:34 ] >>376 俺はあほじゃねーよ 落ちこぼれなだけだ糞が
378 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 20:31:08 ] せめてageたら?(藁
379 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 21:10:59 ] >>374 いやいや、あるよ。規格上でも char≦short≦long なだけだし。 intに至ってはもっとひどい
380 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 21:14:39 ] 規格ではshortは-32767〜+32767を保証してなかったっけ?
381 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 21:20:41 ] >>380 ISO/IEC 9899によるとちゃんとその規定があるな つか規格読んでもshort intとshortの区別がつかねぇ・・・ longとlong intの違いって何? long long ago; ってそういうギャグを実現したかっただけ?
382 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 21:30:51 ] >>379 バカまるだし shortは16bit以上、longは32bit以上が必須
383 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 21:37:59 BE:1262592386-2BP(250)] どの規格のC? てかCじゃなくてC++?
384 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 21:40:46 ] 5.2.4.2.1 Sizes of integer types <limits.h> も読んだことない奴は黙ってろよ、ボケが。 www.jisc.go.jp/app/JPS/JPSO0020.html で X3010 な。
385 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 21:40:44 ] >>382 >longは32bit以上が必須 さすがにこの嘘はオレでも見抜く
386 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 21:43:06 ] ずっと384のターン
387 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 21:54:57 ] 知らないことは恥ではないし、バカにされる理由もない。 誰もが最初は知らないんだし、少なくとも俺は知らないという理由ではバカにしない。 恥なのは、知らないくせに知ったかぶって間違いをさらすこと。 嘘を言いふらして、周りにも迷惑をかけるし。
388 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 21:56:24 ] C89より昔のCプログラムはネットにつなぐな氏ねってことですかそうですか
389 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 21:57:45 ] もし>>379 と>>385 (と>>371 )が別人だったら笑える。 こんなにも恥さらしが何人も居るとは。
390 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 21:58:21 ] >>387 あんまり384をいじめるなよ
391 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 22:01:41 ] もしかして、>>387 と>>384 が同一人物だと思っているのですか?
392 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 22:03:37 ] >>388 発端となった>>371 は、「今では」と言っているので、昔の話は関係ありませんね。 「今のCの規格」で、shortのサイズが決まっているかどうかですよ。
393 名前:デフォルトの名無しさん [2007/11/10(土) 22:08:30 ]
394 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 22:09:21 ] >>392 昔の規格が使用禁止になったわけじゃないしなぁ。 ていうか、使用禁止にしてほしい。マジで。頼むよ。
395 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 22:14:06 ] 新規格を出せば後は野となれ山となれ
396 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 22:16:54 ] ふと思ったんだけど、C99ってみんなもう適用してる?
397 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 22:19:03 ] もう適用してる? (゚Д゚)ハァ?
398 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 22:26:57 ] >>397 冷静に考えたら適用って変な言い方かも。 つーか -std=c99つけるとコンパイル通らないコードとか けっこう多くてさー
399 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 22:33:08 BE:946944094-2BP(250)] K&R2版のANSI Cに従って書いてる。 つもり
400 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 22:36:04 ] 結局、 shortが16bitとは言い切れない時代の規格 が まだまだゾンビのように蔓延ってるってことか・・・やりきれんな
401 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 22:40:10 ] そんなの<limits.h>やsizeof使えば簡単に弾けるじゃん。
402 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 22:43:14 ] >>401 で?
403 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 22:43:29 ] >>401 弾いてどうすんだよwww コンパイル通らないだろwww そんなリファクタする暇と金は貰ってねーよwww サーセンwww という人が多いというかほとんどだと思う。
404 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 22:46:13 ] 弾いたら動かないだろw
405 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 22:49:50 ] >>400 のケースは新しく書いたコードをコンパイルするんでしょ? 希少な環境向けのコードは、必要に迫られてから実装すればいいのでは? コンパイルの失敗を安全弁にしといて。
406 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 22:53:12 ] >>405 いや、無理だな コンパイルが通ってしまって挙動が変わる のが怖すぎる 古ければ古いほどなおさら・・・ イァ イァ
407 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 23:14:48 ] #ifndef __STDC__ #error ばーか #endif つーか、まず「C89以前のコンパイラしかない環境」は無いし(GCC等のクロスも含めて) 例え「C89以前」だとしても、「それに加えてshortが16bit未満」なんてこと、ありえないよ。 世界中捜せば、pccを自分でコンパイルして常用している人くらいは居るかもしれないけどさ。
408 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 23:18:00 ] そもそも、C89、いわゆるANSI-Cだって プロトタイプやconst,voidなんかを導入したとはいえ、 「出来るだけそれ以前の処理系が規格違反にならないような規格」として作られたんだから。 intのサイズとか。
409 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 23:19:48 ] >>407 「C89以前のコンパイラしか使わせてもらえない職場環境」 は実在します
410 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 23:23:13 ] 12bitのDSPが御座いまして
411 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 23:25:15 ] H8Sとか普通に使うんすけど
412 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 23:42:45 ] へー、みんな、そんなにshortが16bitに満たない環境を使ってるんだー すごいねー
413 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 23:47:12 ] ここはネットワークプログラミング相談室 いつからC言語信者が語り合うスレに・・・
414 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 02:30:05 ] 407は自宅警備員?
415 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 02:33:28 ] うん
416 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 04:06:51 ] >>407 >「それに加えてshortが16bit未満」なんてこと、ありえないよ。 そういう世界に生まれたかった
417 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 04:17:13 ] 今からでも遅くはないZE っ脳内世界
418 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 12:05:04 ] とりあえずシロートは↓嫁 www9.plala.or.jp/sgwr-t/c/sec13.html
419 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 12:19:25 ] 已 学 了的「long」修 尺寸。 其 「long」用 略了「long int」的 述, 那个意 成「与int型同 比那个大」。 在同 里(上)表示「与int型同 比那个 小的」「short」(short int 的省略)也存在。 ANSI C short 和 long 的字 幅度被 理器托付,象只以下一 地 定着。
420 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 13:57:54 ] >>418 そのページの作者↓のページで扱える数値の範囲に嘘を書いているから信憑性ゼロ www9.plala.or.jp/sgwr-t/c/sec02.html#s2-2 × -32768〜32767 ○ -32767〜32767
421 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 14:03:33 ] つーか>>384 を読んでくれよ。 ここの部分は馬鹿でも理解できる記述になってるから。
422 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 14:07:49 ] >>420 お前それは本気で言ってるのか…(゚д゚)
423 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 14:13:04 ] >>384 でFA! あとはC言語スレで!
424 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 14:26:26 ] ほんとこういうくだらない話題のときだけは伸びるな
425 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 17:52:14 ] >>421 X3010ってC99のことじゃないの?
426 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 17:57:47 ] いやX3010のうちX3010:2003がC99相当
427 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 18:18:53 ] >>426 なるほど
428 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 18:20:21 ] intのサイズはどうでもいいというか決まってないよね?
429 名前:デフォルトの名無しさん [2007/11/12(月) 10:02:48 ] AcceptExの完了をGetQueuedCompletionStatusで捕捉できない・・・ その次のクライアントからの送信はGetQueuedCompletionStatusで捕捉できるのですが 第4引数のLPOVERLAPPEDはAcceptExに渡したのがきます。 >< 期待したのは メインスレッドでAcceptExを呼ぶ -> クライアントがconnectしてくる -> ワーカースレッドで呼ばれてたGetQueuedCompletionStatusが処理を返す -> クライアントが"Hello"と送る -> ワーカースレッドで呼ばれてた(ry という感じなのですが 実際は メインスレッドでAcceptExを呼ぶ -> クライアントがconnectしてくる -> まだGetQueuedCompletionStatusから返らず@ワーカースレッド -> クライアントが"Hello"と送る -> ここで初めてGetQueuedCompletionStatusが処理を返す となってしまします。 初めてGetQueuedCompletionStatusが返ったときのOVERLAPPED::InternalHighは5となっておりクライアントからの送信に反応したものと思われます。 AcceptExの完了を捕捉しないのが仕様かと思ったのですが ttp://www.codeproject.com/useritems/iocpwalkthrough.aspのコードを見てみるとワーカースレッド内にswitch文内をみるとsend、recvのみならずacceptも捕捉できることを 前提として書かれてるように見えます。 しかし実際コンパイルして実行してみるとやはり上記とおなじことになってしまいました。
430 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 13:13:54 ] いや仕様だし。
431 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 13:52:02 ] >>429 MSDN読んだら。 データを受け取るまで待ちたくないのなら、 dwReceiveDataLengthに0を渡すと良さげ。