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/
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 それはないと思うのですが。 スレッド間で異なる値のソケットを持っていますし、アドレスで渡してはいないので別スレッドのソケットを参照してしまうこともないです。 スレッド間の排他制御以前の問題だと思います。