1 名前:デフォルトの名無しさん mailto:sage [2009/10/14(水) 03:43:08 ] 主にソケットに関しての質疑応答スレッドです。 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 辺り 足りなかったら適当に付け足してね 前スレ ネットワークプログラミング相談室 Port24 pc12.2ch.net/test/read.cgi/tech/1246895188/ 関連スレ ネットワークプログラミング雑談 pc12.2ch.net/test/read.cgi/tech/1235800707/ Java ネットワークプログラミング 【教えて!】 pc12.2ch.net/test/read.cgi/tech/1086238859/
348 名前:デフォルトの名無しさん [2009/12/12(土) 11:14:57 ] >>342 バッファって、どこのバッファですか?
349 名前:デフォルトの名無しさん mailto:sage [2009/12/12(土) 12:07:31 ] >>348 あなたがデータを受け取るためにrecvfromの第2引数に指定したバッファ
350 名前:デフォルトの名無しさん mailto:sage [2009/12/12(土) 12:34:01 ] UDPのカーネル内での受信バッファサイズって どこで規定されてたっけ?defineとかあった? あと、これは勉強不足から来る質問なんだけど IPv6でも65536-20-8=65516が最大サイズでおk?
351 名前:デフォルトの名無しさん [2009/12/12(土) 15:40:03 ] >>349 ありがとうございます ただ、1000バイトと400バイトのデータが送られてきて ソケットのバッファ?にたまってますよね それをrecvfromで400バイトずつ取り出すと、残り600バイトが パーになるとのことですが、 どうやってrecvfromは、1回目の1000バイトと2回目の400バイトを 別として見分けるのでしょうか
352 名前:デフォルトの名無しさん mailto:sage [2009/12/12(土) 15:43:23 ] UPDの仕様は理解したうえでの質問なんだよな?
353 名前:デフォルトの名無しさん mailto:sage [2009/12/12(土) 15:43:57 ] ソフトを作る団塊で通信するパケットサイズ決めておくんじゃね?
354 名前:デフォルトの名無しさん mailto:sage [2009/12/12(土) 15:45:55 ] >>351 取り出したらああああああああああああああssssssss 見分けるというか、パケット単位で管理してる。 recvfromでパケットごとに取り出すので 取り出す際に余った分は破棄される
355 名前:デフォルトの名無しさん mailto:sage [2009/12/12(土) 15:52:28 ] そもそもUDPなの?
356 名前:デフォルトの名無しさん mailto:sage [2009/12/12(土) 15:58:18 ] どうせ釣りだろ
357 名前:デフォルトの名無しさん mailto:sage [2009/12/12(土) 18:07:41 ] ほんとにTCP/IPの知識ないのにネットワークプログラミングやろうとする奴多すぎ
358 名前:デフォルトの名無しさん mailto:sage [2009/12/12(土) 18:10:11 ] やれば知識がつくんだからいいじゃない
359 名前:デフォルトの名無しさん mailto:sage [2009/12/12(土) 18:11:57 ] プロトコル層とかなんちゃら層とか
360 名前:デフォルトの名無しさん mailto:sage [2009/12/12(土) 18:24:35 ] >>351 > どうやってrecvfromは、1回目の1000バイトと2回目の400バイトを > 別として見分けるのでしょうか >>354 が言う通りパケット毎に管理してる。 そもそも recvfrom() は引数で送信元アドレス/ポート が取得できるだろ。連続して違う相手から受信したらデー タが混じるとでも思ってるのか?
361 名前:デフォルトの名無しさん mailto:sage [2009/12/12(土) 19:46:46 ] 65536-20-8=65508だったな。計算間違えたぜ。 このサイズ以上はOS側で落とされるな。
362 名前:デフォルトの名無しさん mailto:sage [2009/12/12(土) 21:04:26 ] proxyの作り方教えてください
363 名前:デフォルトの名無しさん mailto:sage [2009/12/12(土) 21:13:42 ] proxy 作り方 - Google 検索 ttp://www.google.co.jp/search?q=proxy+作り方
364 名前:デフォルトの名無しさん [2009/12/12(土) 21:14:06 ] >>360 recvfromがまとめてパケットを1回でとりこむかなとおもいまして・・・ そういう部分は、recvfromの関数がソケットと関連づけられてつくられてるのかな
365 名前:デフォルトの名無しさん mailto:sage [2009/12/12(土) 21:24:48 ] 他のプログラムが使用してるソケットにデータを送ることってできないの? 某ネトゲチートツールみたいに
366 名前:デフォルトの名無しさん mailto:sage [2009/12/12(土) 21:38:12 ] >>365 自分で答えを書いているじゃないか。
367 名前:デフォルトの名無しさん mailto:sage [2009/12/12(土) 21:47:59 ] p2proxyみたいに
368 名前:デフォルトの名無しさん mailto:sage [2009/12/12(土) 23:20:21 ] >>365 Windows? Linux? Linuxなら結構簡単
369 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 21:34:53 ] 自作したプログラムで(おそらく)存在しないURLにアクセスすると 3000回くらいで、ネットワーク自体から切断されます ISPにも問い合わせましたが、このプログラムを止めてくれと言うだけで 原因がはっきりしません ループ文使って sprintf( http, "....%d.jpg ", i ); とURLを作ってるのですが なにかしらの暗黙のルールなどあるのでしょうか? WindowsAPI使ってます
370 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 21:48:30 ] ISP側に同情するわ
371 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 21:55:11 ] >>369 阿呆かお前は ネットワークプログラムのテストするなら まずはローカルで試してからだろボケ 致命的なバグを抱えているかも知れんのに 常識を疑われてもしょうがないレベルだな
372 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 22:01:37 ] sprintfで外に出ていってしまうん?
373 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 23:24:59 ] おまえは何を行っているんだ
374 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 00:31:54 ] 連番jpgを物故抜きしてんのか? ネットランナーでも買っとけ
375 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 00:39:10 ] >>369 > 原因がはっきりしません しとるがなw
376 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 01:07:36 ] DoSアタックと判断されて蹴られてると考えるのが普通だな 俺が管理者なら攻撃とみなしてISPに通報するね
377 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 01:11:33 ] IPS(ISPじゃないよ)で自動的に切断です。
378 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 01:14:44 ] IPS インターネット プロバイダ サービス ISP インターネット サーバー プロトコル
379 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 02:42:06 ] >>378 無知を晒して楽しいか?
380 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 07:19:11 ] preventionなのかprotectionなのか
381 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 07:23:39 ] 脳内返答ばかりやな 役に立たんゴミども
382 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 09:44:38 ] んなこといったって、状況説明がほとんどないんだから脳内補完して答えるしかねーだろ とりあえずどうせ、1鯖へのコネクションは同時に2本まで。というルールすら守ってないんだろ・・・
383 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 09:51:31 ] 負荷下げるためにkeep-alive使ったり、それで性能がほしければ パイプライニングしたりするべきだが...
384 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 12:02:10 ] まあうざいのはdenyされるので、がんばっても無理だけどな。 相手の許容範囲で出来る事を遣るしか無い。
385 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 15:34:03 ] >>382 >同時に2本まで。というルールすら >>369 に、「同時にコネクション張る」甲斐性があるとは思えません。
386 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 16:44:19 ] 問い合わせたお(^ω^) テンプレが返ってきたお(;ω;) お問合せいただきました事象によるネットワークからの切断に つきましてですが、大変申し訳ございませんが弊社で判断する ことは困難な状況です。 うんこ様のご利用いただいております電話回線に関しまして、通常時に 故障などが発生した場合には、フレッツサービスに関するお問合せ先が ございますので、下記フリーダイヤル番号までご連絡いただきますよう よろしくお願い致します。 とりあえず、コネクション2つ以上とかアホ言ってるやつは士ね
387 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 17:04:16 ] サムライ呼ばわりとは是如何に
388 名前:デフォルトの名無しさん [2009/12/17(木) 00:38:13 ] ファイヤーウォールみたいに通信に割り込みかけるのってどうやるの?
389 名前:デフォルトの名無しさん mailto:sage [2009/12/17(木) 03:17:17 ] ちょっと待ってて
390 名前:デフォルトの名無しさん mailto:sage [2009/12/17(木) 09:10:01 ] 架空URLに高速連続問い合わせとか、DNS鯖に対する攻撃か・・・? 警告はおろか、実際に査察が来るレベルだぞ
391 名前:デフォルトの名無しさん mailto:sage [2009/12/17(木) 11:23:39 ] 友人がPING(のようなもの)を飛ばしまくって、JPNICからリアル警告くらってたな その話聞くまで都市伝説だと思ってたよ俺も
392 名前:デフォルトの名無しさん mailto:sage [2009/12/17(木) 11:25:58 ] 信用できねぇ
393 名前:デフォルトの名無しさん mailto:sage [2009/12/17(木) 11:40:10 ] >>392 一般的に考えるとJPNICからってのが胡散臭い感じがするけど それが本当なら恐らくmrtgみたいなことしようとして主要IXとかに pingしまくって怒られたって話なんじゃないかと。
394 名前:デフォルトの名無しさん mailto:sage [2009/12/17(木) 11:45:15 ] むちゃな事をしなけりゃ一生縁の無い話なんだから、どうでもいいなw
395 名前:デフォルトの名無しさん mailto:sage [2009/12/17(木) 12:10:06 ] どうでもいい
396 名前:デフォルトの名無しさん mailto:sage [2009/12/17(木) 12:34:03 ] 昔はTCPのスタックの負荷テストするのにテキトーなサイトの chargenポートに繋いだもんだったw
397 名前:デフォルトの名無しさん mailto:sage [2009/12/17(木) 12:41:22 ] (自慢話は)どうでもいい
398 名前:デフォルトの名無しさん [2009/12/17(木) 12:41:54 ] パソコン通信の時代はプログラム的にはどう接続してたの? たしか相手先の電話番号にダイヤルアップで直に接続してたんだよね?
399 名前:デフォルトの名無しさん mailto:sage [2009/12/17(木) 12:46:20 ] モデムのシリアル接続で直に。基本はテキストのみ。 バイナリをやりとりする時は XMODEM その他のプロトコルで。
400 名前:デフォルトの名無しさん mailto:sage [2009/12/17(木) 13:03:50 ] 相手PCとの同期とかどうしてたの?
401 名前:デフォルトの名無しさん mailto:sage [2009/12/17(木) 13:04:55 ] 図書館とかで古いパソコン雑誌見るとパソコン通信の電話番号とかたくさん掲載されててなんかすごかったわw
402 名前:デフォルトの名無しさん mailto:sage [2009/12/17(木) 13:07:13 ] 同期もなにも、相手のデータを引っ張り出すだけだからなぁ telnetとかわらん感じだが
403 名前:デフォルトの名無しさん mailto:sage [2009/12/17(木) 13:09:02 ] なるほど。細かいところはハードウェアかOSあたりが処理してたのか。今と変わらんのか。 今でもやろうと思えばパソコン通信ってできるの?
404 名前:デフォルトの名無しさん mailto:sage [2009/12/17(木) 13:09:33 ] >>400 モデムの上位は無手順。 基本はデータをただ流すだけだけど、 スタートビット、ストップビット、パリティビットなどの取り決めがある。
405 名前:デフォルトの名無しさん mailto:sage [2009/12/17(木) 13:11:12 ] オサーンが多いことだけはわかった
406 名前:デフォルトの名無しさん mailto:sage [2009/12/17(木) 13:12:03 ] >>404 そのビットとかはプログラム側で処理するの?
407 名前:デフォルトの名無しさん mailto:sage [2009/12/17(木) 13:14:21 ] RS232C(COM)プログラムしてみりゃわかる ただ設定をちょこっと命令するだけ
408 名前:デフォルトの名無しさん mailto:sage [2009/12/17(木) 13:15:26 ] >>406 ちったあ手前で調べろや禿。つーか、シリアルI/Oも知らんのか。 最近のPCは非搭載なのが増えたせいか?
409 名前:デフォルトの名無しさん mailto:sage [2009/12/17(木) 13:16:03 ] 周辺機器との通信と同じってことかな?ふ〜ん今のプロトコルとかより簡単そうだね
410 名前:デフォルトの名無しさん mailto:sage [2009/12/17(木) 13:16:51 ] 本気で聞く気がなけりゃこんなもんだろう
411 名前:デフォルトの名無しさん mailto:sage [2009/12/17(木) 13:17:10 ] みなさんの貴重はお昼休みをどうもありがとうございました^^
412 名前:デフォルトの名無しさん mailto:sage [2009/12/17(木) 13:20:22 ] テンプレに本気じゃないやつは訊かずに自分で調べろとでもいれとくかw
413 名前:デフォルトの名無しさん mailto:sage [2009/12/17(木) 13:26:14 ] もう232Cでのプログラムなんてやらなくなっちゃったしな USBばっかだし(USBもシリアルじゃんって言わないの)
414 名前:デフォルトの名無しさん mailto:sage [2009/12/17(木) 13:26:32 ] その通信の先にppp接続がある
415 名前:デフォルトの名無しさん mailto:sage [2009/12/17(木) 13:42:58 ] 232Cポートが無くなっても、 最新のLinuxで毎日使う端末画面はボーレート38400bps
416 名前:デフォルトの名無しさん mailto:sage [2009/12/17(木) 13:48:44 ] たった今も機器とのシリアル通信のコード書いてるんだが・・・(マイコン系)
417 名前:デフォルトの名無しさん mailto:sage [2009/12/17(木) 14:01:00 ] >>413 USBシリアルデバイスって知らないの? USBは上位プロトコルは既存のプロトコルを採用している。
418 名前:デフォルトの名無しさん mailto:sage [2009/12/17(木) 14:08:53 ] 知ってて「突っ込むな」と書いてあるように思うんだが。
419 名前:デフォルトの名無しさん mailto:sage [2009/12/17(木) 14:13:00 ] まさかストレートにつっこまれるとは思わなかった
420 名前:デフォルトの名無しさん mailto:sage [2009/12/17(木) 14:42:31 ] 最近はマイコンでもシリアル通信用のライブラリがあるからなー AVRでUARTとMAX232でPCの232Cとシリアル通信したことあるよ。
421 名前:デフォルトの名無しさん mailto:sage [2009/12/17(木) 15:02:05 ] USB仕様が物理層でシリアルなことと、 USBシリアルデバイスがデータリンク層でシリアル型プロトコルであることは別。
422 名前:デフォルトの名無しさん mailto:sage [2009/12/17(木) 15:32:15 ] で?
423 名前:デフォルトの名無しさん [2009/12/17(木) 15:35:37 ] パソコンに繋いだ外部機器との通信とかドライバのことってこのネットワークスレでいいの?
424 名前:デフォルトの名無しさん mailto:sage [2009/12/17(木) 15:37:05 ] マウスとかは勘弁して欲しいけどw、 HP-IBとかそういうのは構わないんじゃないの
425 名前:デフォルトの名無しさん mailto:sage [2009/12/17(木) 15:40:53 ] ども、質問できるスレを確保したので本格的に勉強始めますわ。どもでしたー
426 名前:デフォルトの名無しさん mailto:sage [2009/12/17(木) 21:16:44 ] あいよ−
427 名前:デフォルトの名無しさん mailto:sage [2009/12/17(木) 23:57:39 ] 念力はだめだからな
428 名前:デフォルトの名無しさん mailto:sage [2009/12/18(金) 10:10:20 ] ふーん
429 名前:デフォルトの名無しさん mailto:sage [2009/12/18(金) 13:26:24 ] エスパー問題なら俺に任せて。 他人のバグなら7秒で解決する。
430 名前:デフォルトの名無しさん mailto:sage [2009/12/20(日) 10:57:32 ] >>429 がデバッグを完了するタイムは、わずか7秒にすぎない。 では、デバッグプロセスをもう一度見てみよう。
431 名前:デフォルトの名無しさん mailto:sage [2009/12/21(月) 00:01:19 ] >>429 エスパーが質問に答えるスレ pc12.2ch.net/test/read.cgi/tech/1187922645/ どうかお帰り下さい
432 名前:デフォルトの名無しさん [2009/12/21(月) 18:30:51 ] エスパーを迫害中ですか
433 名前:デフォルトの名無しさん mailto:sage [2009/12/22(火) 01:54:36 ] そのうち「テラへ」スレになりそうだ
434 名前:デフォルトの名無しさん mailto:sage [2009/12/22(火) 02:28:36 ] 雑誌を次々と潰していくエスパーよりはいいかもな
435 名前:デフォルトの名無しさん mailto:sage [2009/12/22(火) 03:10:35 ] >>434 ここ何年かは潰してないだろ!
436 名前:デフォルトの名無しさん mailto:sage [2009/12/26(土) 17:17:14 ] マルチスレッドのクライアントを作ろうとしてるんだけど なんかエラーが出る件 WSAStartupはメインで1度呼ぶだけでいいんだよね?
437 名前:デフォルトの名無しさん mailto:sage [2009/12/26(土) 23:56:55 ] >>436 はい
438 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 12:54:52 ] >>437
439 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 14:04:18 ] Yahooでは返答がなかったのでこちらに質問します HTMLフォームにキーワードを入れてクリックする処理 たとえば www1.axfc.net/uploader/Sc/so/67614 のようなサイトで、ファイルをダウンロードするにはキーワードを入れる必要があります 今回のサンプルでは test といれてクリックすればダウンロードできます これをプログラムで処理したいのです 短く言うと フォームにキーワードを入れて、クリックする処理をプログラムで実現したい C/C++で処理したいと考えてます サンプルソースなど教えていただけないでしょうか? OSはWindowsです
440 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 14:18:28 ] そんなニッチな作業をするピンポイントなサンプルは無い キーワードは固定なのか? ネットワークプログラミングスレでその質問をするということは、 まずソケットの扱い方とHTTPの仕様を理解しなければならないな
441 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 14:39:02 ] ネットワークプログラミングじゃねーじゃん IEコンポでも使えばいいよ
442 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 14:58:15 ] >>439 この辺で十分だよ www.happy2-island.com/vbs/cafe02/capter00701.shtml
443 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 15:01:39 ] >>439 libcurl使え
444 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 15:05:47 ] pc12.2ch.net/test/read.cgi/tech/1260842197/ スレを勃てるまでもないC/C++の質問はここで 13 pc12.2ch.net/test/read.cgi/tech/1260532772/ C/C++の宿題片付けます 133代目
445 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 16:24:46 ] Winsock2なんですがサーバアプリケーションで連続してacceptすると100回のうち1〜2回ぐらい、 1)メインスレッドで sock=accept() −> INVALID_SOCKETではない 2)メインスレッドで sockを別スレッドに渡す 3)別スレッドで event = WSACreateEvent(); 4)別スレッドで WSAEventSelect(sock,event,...) −> SOCKET_ERROR 発生(WSAGetLastError()は10038) という状態が起きます。 メインスレッドでは accept()後、別スレッドに処理を渡してすぐに戻る仕様です。 また、別スレッド管理は空いているスレッドがなければ作成、アイドル中のスレッドがあればそれを使用、 接続中のスレッドが3コになったら、空きができるまでaccept()には戻りません。 同時に2つ以上の接続要求が来なければ、問題なく動作しているようなのですが接続要求が連続してくると上記のような症状が発生します。 原因になりそうなことが分かる方はいらっしゃいますか?
446 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 17:08:56 ] メインスレッドがちゃんと渡してないのでは。
447 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 17:17:37 ] Winsock2は詳しくないんだが、エラーコード10038の意味は何? それを調べる事から調査が始まるのではないかと。
448 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 18:23:22 ] >>446 デバッグ用にコードを仕込んで確認しました。 acceptから受けたsock(メインスレッド) と WSAEventSelectに渡されるsock(別スレッド)は同じでした。 >>447 WSAENOTSOCK 10038 Socket operation on nonsocket. An operation was attempted on something that is not a socket. Either the socket handle parameter did not reference a valid socket, or for select, a member of an fd_set was not valid. です。 有効なソケットではないという感じです。
449 名前:445 mailto:sage [2009/12/27(日) 23:10:32 ] >接続中のスレッドが3コになったら、空きができるまでaccept()には戻りません。 この部分を1コに変更する(つまり、ひとつの接続が完了するまで次のaccept()には戻らない)と上記のようなエラーは発生しなくなります。
450 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 13:18:33 ] メインスレッドからポインタでデータを渡していて スレッドで読んでる最中に上書きしちゃてるとか
451 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 14:54:36 ] タイムアウトのためだけにselect使う場合は FD_ISSETは使うわなくていいんだよな?
452 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 15:17:55 ] >>451 エラー要因はちゃんと見とけよ 割り込みだったら待ちなおしだ
453 名前:445 mailto:sage [2009/12/28(月) 18:06:48 ] >>450 SOCKET型変数を値渡ししています。 どこかで上書きしちゃっている可能性も考えたので>>448 で実験していましたが エラー発生時のメインスレッドのsock(SOCKET型) と値渡ししたsock(SOCKET型) は同じ数値でした。 また>>445 の1〜4のうち、1と2の間でも、acceptの戻り値がINVALID_SOCKETであるかどうかの確認を行っています。 このときにはINVALID_SOCKETではないのに、別スレッドに渡した後のWSAEventSelect()やWSAEnumNetworkEvents()でSOCKET_ERRORになります。 SOCKET_ERRORの時はif(WSAGetLastError()==WSAEWOULDBLOCK)...の処理を入れてあります。
454 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 18:39:56 ] 別のとこで同じソケット使おうとしてるんだろ
455 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 18:41:34 ] よく分からないけど、WSAEventSelect()のほかのパラメタも 見直してみてはどうかな 第一引数のソケットは正しくても WSAENOTSOCKが返ることも あるみたいだし groups.google.co.jp/group/microsoft.public.win32.programmer.networks/browse_thread/thread/f7cf0ce6e7e2aefa
456 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 22:47:31 ] 排他制御が出来て無くて他のスレッドで無効にしてるんだろ。
457 名前:445 mailto:sage [2009/12/29(火) 00:06:22 ] >>455 ありがとうございます。 リンク先のURLはWSAEventSelect(...)の2番目の引数はWSAEVENT*ではなく、WSAEVENTだよってことですよね? (ソースはWSAEVENT**を渡そうとしているようですが) >第一引数のソケットは正しくても WSAENOTSOCKが返ることもあるみたいだし SOCKET_ERRORを返した場合でも、一定時間待機後リトライするようにしたところ、成功することがあるということが分かりました。 それでもまだ失敗する場合もあるようですが、かなり改善しました。 いろいろ試してみます。 >>456 それはないと思うのですが。 スレッド間で異なる値のソケットを持っていますし、アドレスで渡してはいないので別スレッドのソケットを参照してしまうこともないです。 スレッド間の排他制御以前の問題だと思います。
458 名前:デフォルトの名無しさん mailto:sage [2009/12/29(火) 08:27:42 ] >>457 > スレッド間の排他制御以前の問題だと思います。 自分のコードが間違っていると言う考えには至らず、システムに原因があると考える、 典型的な初心者。 100%に近い確率でお前のコードのどこかが、SOCKETを無効にしているか無効なソケット を渡されたのをチェックせず見逃している。
459 名前:デフォルトの名無しさん mailto:sage [2009/12/29(火) 10:29:25 ] コードをうpすれば間違いを指摘してやるのにな
460 名前: ◆0uxK91AxII mailto:sage [2009/12/29(火) 10:40:02 ] >>453 >エラー発生時のメインスレッドのsock(SOCKET型) と値渡ししたsock(SOCKET型) は同じ数値でした。 それは、acceptの戻り値と一致するのかな、っと。
461 名前:445 mailto:sage [2009/12/29(火) 18:33:55 ] >>458 >自分のコードが間違っていると言う考えには至らず、システムに原因があると考える、 違いますね。 排他制御以前に自分の「winsock2の取り扱い方」に問題があると思っています。 >>460 >メインスレッドのsock(SOCKET型) これがacceptの戻り値です。
462 名前:デフォルトの名無しさん mailto:sage [2009/12/29(火) 19:09:11 ] >461 ぐだぐだ言ってねぇでいいからSOCKETを渡してるとこと受け取ってるとこをmutexでくくれ。 話はそれからだ
463 名前:デフォルトの名無しさん mailto:sage [2009/12/29(火) 19:29:44 ] > 排他制御以前に自分の「winsock2の取り扱い方」に問題があると思っています。 socket, acceptでSOCKET作る。使う。閉じる。これだけなのに使いこなせないとは よほどのヘボということになるが。
464 名前:デフォルトの名無しさん mailto:sage [2009/12/29(火) 19:34:22 ] 仕事の話なら「死んでくだしあ」になるけど 趣味ならしょうがないというか、よくある話でしょう。
465 名前:デフォルトの名無しさん mailto:sage [2009/12/29(火) 22:03:57 ] 勘違いしてました、とかよくあるからな
466 名前:デフォルトの名無しさん mailto:sage [2009/12/29(火) 22:26:02 ] 2ちゃんねるはもっと親切な場所だと勘違いしてました(><)
467 名前:デフォルトの名無しさん mailto:sage [2009/12/29(火) 22:44:11 ] 2ちゃんねるが親切とか、どこを見ればそんな勘違いできるんだろう
468 名前:デフォルトの名無しさん mailto:sage [2009/12/29(火) 22:47:40 ] 俺がいるからこういう勘違いをさせてしまう
469 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 02:50:22 ] オヤギリ・・・ゴクリ
470 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 11:49:29 ] みんな、すまん
471 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 12:04:37 ] うむ
472 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 15:49:10 ] 2ちゃんねるは 匿名で知らない新人のかげぐちを言う 最低のゴミクズのチンカス野郎のあつまりですよ(^-^)
473 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 15:52:37 ] チンカスって何?
474 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 16:01:04 ] >>473 あなたのことですよ(^-^)
475 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 19:30:21 ] >>453 > SOCKET_ERRORの時はif(WSAGetLastError()==WSAEWOULDBLOCK)...の処理を入れてあります。 こういうWSAGetLastErrorの使い方されれると、 ドキュメントに書いてあること守っているかどうか気になるなあ。
476 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 06:13:07 ] いっそオープンソースでやればいいが ぱくられる、たたかれる、異常なほどの知識をもったキチガイがくる のいずれかに該当するので結局オープンにしない そして、車輪の再開発はまた繰り返される これが日本のクオリティ
477 名前:445 mailto:sage [2010/01/03(日) 00:45:04 ] 原因が分かった。 別の接続で(>>445 とは関係のない部分)のミスだった。 別の接続がソケットを使用し、ある条件によって即座にclosesocket()する場合としない場合があるのだけど closesocket()した場合でも、その後オブジェクトの破棄時にまたclosesocket()を呼び出していることが原因だった。 最初のclosesocket()によって開放したソケット(と同じ値)を>>445 のサーバが再利用するようになったときに オブジェクトの破棄時にまたclosesocket()を呼び出したせいでサーバが取得したソケットを無効にしてしまっていたようでした。
478 名前:デフォルトの名無しさん mailto:sage [2010/01/04(月) 13:22:25 ] 大きなファイル or ストリームデータもスムーズに流せるパイプライン的動作の http proxyを作りたいのですが、Keep-Aliveのセッションに流れているリクエスト間の及び レスポンス間を検出をする効率的な方法を教えてください Content-Lengthヘッダは必須ではないようですし 1Byteづつシフトさせてある程度の量を読んでリクエストライン/ステータスラインを 検知するような方法だとbody内等に類似の文字列が含まれた場合に 意図しない動作をする可能性が考えられます (検知に必要なリソースが増える上に遅くなるので避けたいと言うのもあります) ・・・どうしても不確定要素が排除できない・・・(´・ω・`) よろしくお願いします
479 名前:デフォルトの名無しさん mailto:sage [2010/01/04(月) 14:00:22 ] RFC 2626 §8.1.2.1 より > In order to remain persistent, all messages on the connection MUST > have a self-defined message length (i.e., one not defined by closure > of the connection), as described in section 4.4.
480 名前:デフォルトの名無しさん mailto:sage [2010/01/04(月) 23:56:38 ] SystemVとPosixのメッセージキューってどっちが高速なんでしょうか?
481 名前:デフォルトの名無しさん mailto:sage [2010/01/05(火) 07:08:06 ] お前の環境で実測しろ、馬鹿
482 名前:478 mailto:sage [2010/01/05(火) 19:55:43 ] >>479 レスthx。そんなところに書いてあったのか Content-Lengthでやってみます
483 名前:デフォルトの名無しさん mailto:sage [2010/01/05(火) 22:41:25 ] >>480 一般的にはposixの方が速いけど、>>481 のレスのとおりだと思います。
484 名前:デフォルトの名無しさん mailto:sage [2010/01/05(火) 22:50:30 ] 一般的とは?速い根拠は?
485 名前:デフォルトの名無しさん mailto:sage [2010/01/05(火) 23:13:09 ] >>484 SystemVが遅いからいろんな方法が生まれたということを考えるとねぇ
486 名前:デフォルトの名無しさん mailto:sage [2010/01/06(水) 00:04:41 ] だから、根拠は? あんたの妄想なんていらないんだよ
487 名前:デフォルトの名無しさん mailto:sage [2010/01/06(水) 00:09:19 ] なんて偉そうな教えてくん
488 名前:デフォルトの名無しさん mailto:sage [2010/01/06(水) 00:11:17 ] で、根拠はまだかね?
489 名前:デフォルトの名無しさん mailto:sage [2010/01/06(水) 00:14:06 ] おい、根拠はまだか
490 名前:デフォルトの名無しさん mailto:sage [2010/01/06(水) 00:15:01 ] こっちだって忙しいんだからさっさと根拠だせよ無能ども
491 名前:デフォルトの名無しさん mailto:sage [2010/01/06(水) 00:21:32 ] 根拠は出せないみたいだな 知ったかの馬鹿ばっかだったってことだ 今日も俺の勝ち
492 名前:デフォルトの名無しさん mailto:sage [2010/01/06(水) 01:07:22 ] ねんねの時間だぞオイ
493 名前:デフォルトの名無しさん mailto:sage [2010/01/06(水) 16:47:15 ] 誰?こいつにこんなとこ教えたの
494 名前:デフォルトの名無しさん mailto:sage [2010/01/06(水) 16:48:38 ] 深夜に会社にもぐりこんでパソコンやってんのかね キモチワルイ ヒマジン キチガイ モノゴイ
495 名前:デフォルトの名無しさん mailto:sage [2010/01/06(水) 17:13:42 ] ほんと、一般的〜とか 〜の方が速いとか 〜が遅いからとか 真面目なスレに出てきてほしくないよね、何が楽しいんだろうか
496 名前:デフォルトの名無しさん mailto:sage [2010/01/06(水) 17:36:59 ] そもそもメッセージキューって、このスレと関係ないだろ。 >>495 お前も何が楽しくてレスしてんだよ。
497 名前:デフォルトの名無しさん mailto:sage [2010/01/06(水) 17:50:24 ] この一連が楽しくないからレスしたのだが、それがなにか?
498 名前:デフォルトの名無しさん mailto:sage [2010/01/06(水) 19:01:45 ] 争いの発生源 深夜時刻の書き込みを規制すればいいような
499 名前:デフォルトの名無しさん mailto:sage [2010/01/06(水) 19:13:50 ] そんなできもしない事を書いて何になるのか
500 名前:デフォルトの名無しさん mailto:sage [2010/01/06(水) 19:18:15 ] 根拠や実現性の無い事ばかり言う奴っているよね。 邪魔でしょうがない。
501 名前:デフォルトの名無しさん mailto:sage [2010/01/06(水) 20:18:27 ] マスコミとか?
502 名前:デフォルトの名無しさん mailto:sage [2010/01/06(水) 20:45:33 ] 手元の環境で簡単に実測できることを、いつまでぐだぐだ言ってんだ
503 名前:デフォルトの名無しさん mailto:sage [2010/01/07(木) 00:56:32 ] >>500 はナイコン族。キーボードの写真を見ながらプログラムを夢想してる。
504 名前:デフォルトの名無しさん mailto:sage [2010/01/07(木) 01:01:37 ] ナイコン族なつかしー
505 名前:デフォルトの名無しさん mailto:sage [2010/01/07(木) 21:50:38 ] >>496 UNIXネットワークプログラミングのVol.2の内容だな このスレとは関係ないけどな
506 名前:デフォルトの名無しさん mailto:sega [2010/01/08(金) 22:19:30 ] 意図的にパケットロスや遅延を起こすようなブリッジっぽいプログラムを探してるんだけど なんかお勧めはありますか?
507 名前:デフォルトの名無しさん mailto:sage [2010/01/08(金) 22:26:19 ] dummynet, altq
508 名前:デフォルトの名無しさん mailto:sage [2010/01/09(土) 22:05:50 ] linee
509 名前:デフォルトの名無しさん [2010/01/10(日) 12:54:45 ] WMICコマンドでNICのレジスタを操作したいのですがどの程度できるものなのでしょうか? また参考になるサイトは有りますか?
510 名前:デフォルトの名無しさん [2010/01/15(金) 18:52:31 ] データ収集のためにあるサイトに10000回ぐらいHTMLファイルの要求したいんですが 1回ごとにどのぐらい、間を開けるべきですか? 曖昧な質問ですが教えてください。 自分としては10日ぐらいにわけて要求しようと思っているのですが それが多いのか少ないのかわかりません。
511 名前:デフォルトの名無しさん mailto:sage [2010/01/15(金) 18:53:54 ] そのサイトの管理者に聞きなさい
512 名前:デフォルトの名無しさん mailto:sage [2010/01/15(金) 23:27:13 ] >>510 あまり頻繁に同一アクセスすると、DOSアタックと間違えられて、塞がれるからかもしれないぞ。
513 名前:デフォルトの名無しさん [2010/01/16(土) 10:07:48 ] >>511 さん>>512 さんありがとうございます。 難しいですね。 アクセスする度にIP変えるとしてもホストでわかるでしょうし。 とりあえずまだ時間はあるので自分で考えてから決めようと思います。
514 名前:デフォルトの名無しさん mailto:sage [2010/01/16(土) 14:02:32 ] >>510 ,511,513 何を言ってるんだ、おまいらは? それはネットワークプログラミングの問題ではなくて、サイトの運営ポリシーの問題だ 512 が正論だと思うが… … …
515 名前:デフォルトの名無しさん mailto:sage [2010/01/16(土) 14:48:49 ] おまえは2chをなんだとおもってるんだ
516 名前:デフォルトの名無しさん mailto:sage [2010/01/16(土) 16:13:26 ] 掲示板かな
517 名前:デフォルトの名無しさん mailto:sage [2010/01/16(土) 18:47:05 ] アクセス少ないサイトで10000回もアクセスされたら嫌がらせだな。 100万PVのサイトなら誤差? 開発日記でもブログに書いて10000回アクセスしてログ見てみたらw
518 名前:デフォルトの名無しさん [2010/01/16(土) 21:32:09 ] >>517 1日当たりのアクセス数調べてみたら5000万はありそうです。 とっても嫌な気持ちになると思われます。。
519 名前:デフォルトの名無しさん mailto:sage [2010/01/16(土) 22:17:37 ] アクセスランキング上位の超人気サイト
520 名前:デフォルトの名無しさん mailto:sage [2010/01/16(土) 22:53:51 ] google相手だったら恐らくbanされるな(規約で自動化について触れている)
521 名前:デフォルトの名無しさん mailto:sage [2010/01/19(火) 02:51:20 ] winsockでconnectのタイムアウトをつけるにはどうすればいい?
522 名前:デフォルトの名無しさん mailto:sage [2010/01/19(火) 11:03:01 ] ノンブロッキングでconnect
523 名前:デフォルトの名無しさん mailto:sage [2010/01/19(火) 11:30:29 ] スレッドでコネクト
524 名前:デフォルトの名無しさん [2010/01/24(日) 01:45:41 ] シリアルポートを使うアプリ開発しているんですが、 PC1台しかないんで、もう一つ対抗装置をエミュするアプリ作って 同じPC上で通信ってできますか? ソケットならループバックできるけど、シリアルポートはさすがに無理? 物理的につながった相手としか交信できませんか?
525 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 01:55:13 ] VMwareとかVirtualBoxとかを使えばできるんじゃない?
526 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 01:58:41 ] >>525 なるほど!その手があったか。 ありがとうございます!
527 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 02:05:15 ] 安いPCでも買えばいいのに
528 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 02:07:19 ] 普通にUSBシリアル変換を1つ持ってくれば良いんでないの?
529 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 02:29:03 ] 古いPC何台かあまってるけど あげようか?
530 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 03:46:52 ] >>525 仮想ポート同士を繋げるなんて出来たっけ?
531 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 05:44:16 ] 全然ネットワークじゃ無い様な気もする。 シリアルなんて付いてるpc探すほうが苦労するし、もうusbでよくね? pc12.2ch.net/test/read.cgi/tech/1162901243/ USBプログラミング入門 pc12.2ch.net/test/read.cgi/tech/1162801793/ RS-232cについての質問(初心者)
532 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 09:56:16 ] MAX232使えばいいよ
533 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 13:42:30 ] え?今のPCってシリアルついてないの?
534 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 14:39:46 ] 今もPCってパラレルポートもなかったりして
535 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 15:01:48 ] >>530 データの読み書き程度なら、VMwareの場合シリアルポートを名前付きパイプに マップしたり出来るらしいし、なんとかなるかも
536 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 17:15:36 ] telnetdを作ってるのですが、 0x1bのESCだけが送られてきた時と、 エスケープシーケンス(0x1b[Aとか)の区別は 続く文字がこない場合、タイムアウトでやるしかないでしょうか。
537 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 17:29:58 ] どっちみちクライアント側からは 行単位でしか送られてこないケースが多いけど
538 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 17:32:26 ] エコーバックがあるからそんなことないだろ
539 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 17:34:33 ] 次が来るまで保留
540 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 17:38:18 ] >>536 タイムアウトしてはいけない
541 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 17:54:46 ] 何故、区別する必要があるのだろう?
542 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 17:59:24 ] そういえば最後の1バイトが0x1bで終わってると ハングアップする糞メールソフトがあったな NeXTのMail.appだったかな
543 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 20:28:00 ] シリアルで電文コマンド送出するプログラム書いたから 内容によって返答を返してくれるレスポンスプログラムも用意してデバッグしたいってこと? 素直にお古のPCを持ってきた方がいいんじゃない?
544 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 21:26:02 ] 送る処理と受ける処理を混同してるような
545 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 22:01:47 ] s/送る/攻める/
546 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 22:04:32 ] なにこいつうぜえ
547 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 23:35:38 ] >>540 いやいや、常に正格なバイト列だけ送られると仮定してはいけないよ。
548 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 23:44:30 ] >>547 それとタイムアウトは関係ないよね
549 名前:デフォルトの名無しさん [2010/01/25(月) 12:45:46 ] ええと、 よくキャンセルの意味でESCを押して画面やコマンドを クリアすると思うのですが、それを実現したいのです 簡易シェル的な機能を持ってるので カーソル移動とかと区別したいのです
550 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 12:48:51 ] それはクライアントの仕事じゃないの
551 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 13:28:30 ] telnetd→クライアント の方向から カーソル移動とかのエスケープシーケンスを送るのは考えられるけど クライアント→telnetd の方向で カーソル移動とかのエスケープシーケンスを流すの?
552 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 15:24:06 ] 画面制御は無いけど、文字コード切り替えはあるな。
553 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 15:44:55 ] UNIXドメインソケットつくるとき socket( PF_UNIX, SOCK_STREAM, 0 ); 第3引数には 0 を入れてるけど、ほんとは何が正しいの?
554 名前:デフォルトの名無しさん [2010/01/25(月) 16:02:39 ] telnet 中に ^] を押すと何かが起こる
555 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 16:24:19 ] >>552 そうなると 文字コード切り替え と 簡易shell への画面消去を意図した 0x1b 一発との区別は ストリームベースである以上 telnetd 側では判断できない ってことになるよね クライアント→自前teknetd で 後者の操作を意図した入力は クライアントが [ESC] 押下に対して 0x1b を 2発投げるとか 『0x1b受領後 後続の文字がサポート外シーケンスは全て後者の動作とする』 とか (結果的に [ESC] を2回叩かせる) こういう落とし方になるのだろうか?
556 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 16:55:36 ] >>524 古いPCならシリアルポート2つ付いてたりするけどな 1つしかないなら、シリアルカード買ってきて刺すのが吉かと ¥3kくらい?
557 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 16:57:58 ] シリアルポート⇔TCPソケット の簡易鯖作って アプリのほうは TCPソケット相手にがんばる じゃ面倒か
558 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 17:18:32 ] 今ならUSBのシリアルポートあるでしょ アレ便利ですよ
559 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 17:24:52 ] USBシリアルだと電圧足りなくてPICに書けなかったりするんだよねぇ
560 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 17:24:59 ] たまに電力足りないとかでEEPROMライタ使えないとかいう噂あるけど
561 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 17:26:36 ] やっぱりそうかw
562 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 17:33:09 ] シリアルの電源使ってるのかw シリアルじゃ足りなくてキーボードコネクタからも拝借してたなあ・・・
563 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 17:35:46 ] 駄目なひとはUSBハブ通しちゃってるんじゃないの?
564 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 17:36:39 ] TCP/IP だと通信内容モニタリングはしやすくなるのかな