[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 03/27 11:55 / Filesize : 263 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


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

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



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を渡すと良さげ。






[ 続きを読む ] / [ 携帯版 ]

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

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