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/
44 名前:デフォルトの名無しさん mailto:sage [2009/10/22(木) 20:21:04 ] それじゃpingが通らんがなw
45 名前:デフォルトの名無しさん mailto:sage [2009/10/22(木) 20:21:44 ] ping用のポートを用意
46 名前:デフォルトの名無しさん mailto:sage [2009/10/22(木) 20:51:23 ] www.ntt.co.jpとか
47 名前:デフォルトの名無しさん mailto:sage [2009/10/22(木) 22:30:32 ] >>44 The Internetにつながってるサーバはecho返さないようになってるの多くね?
48 名前:デフォルトの名無しさん [2009/10/22(木) 23:07:44 ] 結局、UDPで送信してもフラグメント化されないため送信されてないって話だろ
49 名前:デフォルトの名無しさん mailto:sage [2009/10/22(木) 23:09:12 ] う、うん……(´・ω・`)
50 名前:デフォルトの名無しさん [2009/10/24(土) 14:23:18 ] listenの第2引数の意味がよくわからん 何にすればいいの
51 名前:デフォルトの名無しさん [2009/10/24(土) 14:39:42 ] 0-1
52 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 14:45:28 ] >>50 サーバ側がaccept(2)で接続確立するまで、 サーバ側に既に到着し待たされている接続要求をいくつ持てるか? >>51 少なすぎて話にならない。
53 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 19:57:25 ] なるほどありがとう
54 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 20:12:46 ] ていうか、>>1 のリンクくらい目を通せよ
55 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 20:14:07 ] 1はバックログ数1というわけではないんだな。これが。
56 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 22:12:56 ] それはOSによる。 例えばLinuxは最小が8、最大はsysctl.max_syn_backlog 2の階乗にラウンドされる。
57 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 22:46:01 ] 反論するなら、1がバックログ数1であるものを例示して反論してくれたまえ。
58 名前:デフォルトの名無しさん [2009/10/25(日) 00:07:08 ] パケットのフラグメント化を許可する方法を教えてください
59 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 00:14:17 ] 経路上の中継器の管理者にフラグメントされたパケットを落とさないように依頼する。
60 名前:デフォルトの名無しさん [2009/10/25(日) 13:04:09 ] listenソケットて閉じちゃいけないの?問題発生したんだが
61 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 13:12:44 ] どんな問題か書け
62 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 14:05:12 ] セレクト使った場合 相手がクローズしたかどうかを知るにはどうすればいいの?
63 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 15:03:27 ] >>1 のFAQ嫁
64 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 15:05:51 ] s.eof()
65 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 22:27:46 ] >>59 中継器は使用せず直接LANケーブルで送信受信側をつないでます どうやらパケット自体送出できないみたいなのです フラグメント化が必要なデータだと
66 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 22:52:42 ] PS3かなにかのメッセージか? 動いてるなら気にスンナ
67 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 23:47:01 ] いえ、送出できてないので動かずです
68 名前:デフォルトの名無しさん mailto:sage [2009/10/26(月) 00:25:23 ] >>58 , 59 何がしたくて, 何をやったらどうなってるのよ? どう言う意味でパケットのフラグメントを使ってるのよ? IP フラグメントってのは, 下の例のような構成で, 中継が MTU=500 のネットに会わせて, 勝手に IP パケットを分割する 時の話だぞ 端点 -> MTU=1000 のネット -> 中継 -> MTU=500 のネット -> 端点 UDP で MTU 以上のデータを送信したいとかって話?
69 名前:デフォルトの名無しさん [2009/10/26(月) 15:50:31 ] selectって条件が揃うまで値を返さないんだよね? そうなるとrecvとaccsept用に2つスレッド作らないといけないのか?
70 名前:デフォルトの名無しさん mailto:sage [2009/10/26(月) 16:17:26 ] recv用とaccept用のディスクリプタを両方セットしとけば、いずれか一方が読み込み可能になれば返ってくる スレッドは1つでok
71 名前:デフォルトの名無しさん mailto:sage [2009/10/26(月) 16:39:01 ] UDPソケット作る時に宛先アドレスを指定して作った場合も sendto,sendmsgを使うなら宛先は指定しなければならないんでしょうか?
72 名前:デフォルトの名無しさん mailto:sage [2009/10/26(月) 17:41:42 ] > UDPソケット作る時に宛先アドレスを指定して作った 作り方教えて
73 名前:デフォルトの名無しさん mailto:sage [2009/10/26(月) 17:44:43 ] あー 勘違いしてました
74 名前:デフォルトの名無しさん mailto:sage [2009/10/26(月) 18:24:38 ] UDPでもconnectしとけばsend/recv使えるよ
75 名前:デフォルトの名無しさん mailto:sage [2009/10/26(月) 20:21:31 ] これからネットワークプログラムを開発する場合 今のトレンドのプログラム言語はなんでしょうか
76 名前:デフォルトの名無しさん mailto:sage [2009/10/26(月) 20:22:20 ] Rubyだ
77 名前:デフォルトの名無しさん mailto:sage [2009/10/26(月) 20:26:40 ] Javaだ
78 名前:デフォルトの名無しさん mailto:sage [2009/10/26(月) 20:29:14 ] トレンドなんか気にしているようではいけない
79 名前:デフォルトの名無しさん mailto:sage [2009/10/27(火) 00:12:51 ] >>68 すみません、UDPでMTU以上のデータを送りたいということです。 分かりにくくて申し訳ないです
80 名前:デフォルトの名無しさん mailto:sage [2009/10/27(火) 00:54:01 ] >>79 OSとか環境とか情報はないのか? sendto で宛先指定すりゃ普通に出ていかないか? 送れてない時ってエラー帰ってないか? どうしても send が使いたいんだったら >>74 もっとも, 組み込み用のスタックとかだと UDP の connect は, 実装してないスタックもあるらしいが…
81 名前:デフォルトの名無しさん mailto:sage [2009/10/27(火) 06:19:11 ] >>79 送れません。
82 名前:デフォルトの名無しさん mailto:sage [2009/10/27(火) 10:31:31 ] なんでRFCも読まずにネットワークプログラムしてる奴がゴロゴロいるんだ?
83 名前:デフォルトの名無しさん [2009/10/27(火) 23:38:53 ] ICMP って 「アイコンプ」って読んだら変かなあ
84 名前:デフォルトの名無しさん [2009/10/27(火) 23:54:47 ] hen
85 名前:デフォルトの名無しさん mailto:sage [2009/10/27(火) 23:56:00 ] SNMPをスヌンプって読む人はいるよ 漏れは読まないけど
86 名前:デフォルトの名無しさん mailto:sage [2009/10/27(火) 23:57:11 ] >>82 ノ
87 名前:デフォルトの名無しさん mailto:sage [2009/10/28(水) 11:08:25 ] WSDLはうぃずどぅるだけどな
88 名前:デフォルトの名無しさん mailto:sage [2009/10/31(土) 04:47:46 ] リフラグメント前提のパケットを大量に流してあげると、フラグメントしてくれる親切なルータにDoS出来てしまう気がした。これってセキュリティホールじゃ? ICMP echoは捨ててもいいと思うけどね。ルータで捨てた時に送って来るICMPは捨てると良くないことが起きそうだが。
89 名前:デフォルトの名無しさん [2009/11/01(日) 21:35:44 ] >>80 UDPのconnectなんてあるんですね。。でも、connectすりゃ、send,recv使えるって しなくてもmtu以下のサイズなら使えます。そういうことではないのでしょうか? OSがUNIXでもwindowsでもないからおくれないのかなぁ
90 名前:デフォルトの名無しさん mailto:sage [2009/11/01(日) 21:47:16 ] connectしなかったらsendは使えない だって宛先不明 sendtoやsendmsgは使える connectしたらsendも使える
91 名前:デフォルトの名無しさん mailto:sage [2009/11/01(日) 23:04:55 ] >>88 そんな古いDoS攻撃…
92 名前:デフォルトの名無しさん [2009/11/01(日) 23:21:35 ] 複数の接続を受けるサーバーを作りたいんだけど 人数が増えるたびrecvの回数増やすにはどうすればいいんだ?
93 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 00:37:19 ] recvの回数増やすというのはよくわからないが 受け付けた接続ごとに別々のスレッドを立ち上げるか selectやpoll等を使ってひとつのスレッドですべての接続を捌くか 好きなほうを選べ
94 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 02:12:48 ] スレッドで処理してる間に、パケット届くと取りこぼしそうだw
95 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 02:37:43 ] はあ?
96 名前:デフォルトの名無しさん [2009/11/02(月) 03:33:19 ] UDPパケットを取りこぼしなく取り込みたいのですが なにかいい方法ありませんか?
97 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 09:59:52 ] あきらめれ
98 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 10:28:49 ] >>96 取りこぼさないのは無理なので、取りこぼしたことを検出して回復を図る
99 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 11:25:32 ] 取りこぼしたくなければ素直にTCP使っとけ UDPにするなら取りこぼしてもいいようにプログラム側を設計しろ っていうのが定型文的な解答
100 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 15:29:39 ] 決してしてはならないのは 「Ethernat直結でしか使わないからUDPでも取りこぼしなんて起きないだろう」 などと考えること。これをやってハマる初心者が意外に多くて困る。
101 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 16:09:27 ] 同時にパケット発射すれば簡単に消えるしな。
102 名前:デフォルトの名無しさん [2009/11/04(水) 18:16:51 ] マルチスレッド鯖製作中なんだけど 誰かからデータ受信したら送信してきた相手以外の クライアントにそのデータを送るにはどうしたらいいの?
103 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 18:29:17 ] 言葉どおりにやればいい
104 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 18:31:15 ] 受信したことを別スレッドに通知するにはどうすればいいの?
105 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 19:14:21 ] 通知を受け取りたい各スレッドごとにキューのようなデータ構造を何か用意する 通知を送りたいスレッドは宛先スレッドのキューに送りたいデータを置く 通知を受け取りたいスレッドはヒマなときに自分のキューを見てデータが来ていたら取り出す OSによってはそういったメッセージキューの機能をすでに持っていることもある 自分で作る場合はスレッドセーフにすることを忘れずに
106 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 19:29:06 ] 難しいこと考えないで、 受信したスレッドが全部のソケットに書けばいい 排他が気になるなら、ひとつmutexをロックしておけばいい
107 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 19:30:21 ] >>102 その質問そのものをコードにしてみればいいじゃないか(受け取ったデータを他に転送) リソース競合には気をつける必要があるけど処理自体はおまいの質問そのものだぞ
108 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 19:32:41 ] >>102 何か効率の良い方法とか、そういうライブラリの存在を訊きたいのかもしれないが そのレベルだとどちらの意味でもがんばって送信しやがれってレベルでしかないぞ。
109 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 22:04:39 ] >>106 スレッドに値渡ししたら次のアクセプトで変数上書きしてて 受信したスレッドは、送信する相手のソケットを知ることができないんだ だから他のスレッドに通知してそのスレッドから送信させようかなと グローバルの配列で管理しておかないとだめってことか
110 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 22:13:09 ] 配列というか上に書いてある通りキューだろ (キューの実装は配列でもいいけれど)
111 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 22:36:17 ] でもそれってrecvをノンブロックのしないといけないんでしょ?
112 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 22:56:51 ] そんなこと関係ない。
113 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 00:15:28 ] どういうこと ノンブロックで受信とそのキューとやらのチェックをポーリングさせるってことじゃないのか
114 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 01:33:27 ] 1接続しか許さないサーバプログラムを作る方法を教えてくだちい listen()でバックログを1にしてaccept()した瞬間にlistenソケット閉じて ってやればいいかと思ったけど acceptする前にどんどん接続を受け付けやがる
115 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 02:47:46 ] 接続待ち受けのソケットでそのまま通信すればいいんじゃね?
116 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 04:37:56 ] システムコールに惑わされずにまずRFC読め
117 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 08:47:12 ] 同期用キューでも作って渡せばいい 詳しくはこっちだな マルチスレッドプログラミング pc12.2ch.net/test/read.cgi/tech/1253521167/
118 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 09:01:16 ] >>114 無理なOSは無理なんで諦めてください。 あらかじめ双方のポート番号が分かっているなら 双方からconnectって手があるけど。
119 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 09:02:35 ] >>113 お前がそう言う実装に拘る理由こそ、どういうこと?
120 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 09:29:30 ] >>114 キミのやりたい事は完璧にはできない。 バックログを0にして、acceptしたらlistening socketをcloseする。 これでもacceptしてからcloseするまでの間は接続を受け付けてしまう。 >>118 可能なOSを例示してくれ。今まで聞いたことが無いから知りたい。
121 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 09:41:41 ] 昔のvxWorks
122 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 10:01:50 ] >>118 双方からconnectってなんだよ。
123 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 10:46:35 ] ポート食いつぶし攻撃か?
124 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 11:55:49 ] マイコンのプロトコルスタックを作ってる最中なのだがちょっと質問。 データ送信したとき全くの正常ならば 相手から返ってくるAcknoledgeNumber=自分が送信したSequenceNumber+TCPデータ長 となる筈なんだろうけど、この相手のACKパケットに入ってるAcknoledgeNumberが和より少ないときってこっちは何をすれば良いんだ? もらったAcknoledgeNumberの分までは正常と見なして続きから送り直せばいいのかね?
125 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 15:25:59 ] >>124 そんなもんは気にせずに window size が 0 になるまで無理やり送りつけるんだ
126 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 17:43:56 ] マイコンに限らず再送バッファの大きさに支配されると思う 再送バッファサイズ<=窓までは送れる
127 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 22:18:00 ] >>126 最後は再送バッファサイズの問題とかスロースタートの問題には 行き当たるんだろうけど、プロトコル的には送ったもん勝だわな
128 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 02:03:33 ] >>122 host1: socket→bind→connect host2: scoket→bind→connect TCPの接続開始ハンドシェイクはこういうやり方でも可能。
129 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 22:03:48 ] 意味が分からん。 ソースで示して>128
130 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 13:54:24 ] 横着しないで RFC 位読め
131 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 14:48:44 ] UDPって「取りこぼし」だけじゃなくて「送りそこね」もあるんだよな
132 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 16:41:10 ] 途中で捨てられたも多い。取りこぼしだと届いてるのに拾えなかった感が有るが、そもそも届いてない。
133 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 21:50:24 ] Windowsでネットワークアドレスの違うIPアドレスへ強制的に UDPのパケットを送る方法って無いでしょうか? SetIpNetEntry()で静的arpに登録して送っても駄目みたいでした。 (たぶん送信時に跳ねられている)
134 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 23:07:35 ] arpコマンドで登録すればいいんじゃ?
135 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 00:10:05 ] >>134 SetIpNetEntry()を呼ぶのと、arpコマンド実行は同じ事だと思うけど、 試しにpingとwireshark使ってやってみました。 Destination host unreachable. と出て、相手には何も届いてないですね。 しかも、Windows7でやると特権がいるとかでエラーになるし、 諦めてブロードキャストで送ることにします。
136 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 08:54:56 ] ftpでファイルを送受信することになりました こっちも相手側もクライアントとサーバになります VC(MFC)でプログラムを作ろうと思いますが どうやって作っていいかわかりません クライアント側はサーバーに接続して ファイルを転送する?イメージがあります。 検索するとCFtpConnectionをつかって作るのがわかりました でもサーバー側ってどうやって作るんでしょうか? どこかにサンプルとかヒントはありませんか?
137 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 09:38:23 ] ファイルが転送できればいいのかFTPプロトコルを実装したいのか
138 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 10:18:54 ] 多分ファイル転送ができればいいです プログラムでファイルをリモートのPCに送りたいのと 相手側がいつでもファイルをこちら側に送れるように ftpサーバー機能があればいいです
139 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 10:21:10 ] >>133 違うネットアドレスへ送ろうとする場合、arpはgateway に対してだよ?routeはどうなってるの?
140 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 10:39:50 ] >>138 では www.geekpage.jp/programming/winsock/ をちょこっと見ればできますね
141 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 11:07:33 ] >>140 ありがとうございます 見てみましたがftpについては見当たりませんでした ftpサーバとしてftpクライアントの要望にこたえる例とかしりませんか?
142 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 11:10:23 ] サーバなんて既存のやつ使えばいいじゃない サーバもクライアントも作るなら特定のプロトコルにこだわる必要もないだろう
143 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 11:11:38 ] だめだこりゃ
144 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 11:13:14 ] あとMFCならこういうのでどうか ttp://www.codeproject.com/KB/IP/CFtpServer.aspx
145 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 11:18:28 ] >>142 一応売り物にするのでフリーのは問題ある?のではないかと思ってます システムに組み込んで売っても問題ないフリーソフトとかありませんか? >>144 ありがとうございます 参考にサンプル落とし見ようとしたら登録が必要なようですorz 英語はわからなくて…すみません
146 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 11:25:49 ] 多少の英語も出来ずにプログラマやってるのかよ
147 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 11:28:01 ] もうRFC959読んで自前で実装しちゃいなよ 日本語訳もあったはずだ
148 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 11:48:47 ] >>145 BSDライセンスのFTPサーバ。FreeBSDのとか。 まあ機能限定で実装すれば自前でも簡単だけど。
149 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 11:54:27 ] >>148 ありがとうございます ちょっと調べてみます 自分でいろいろ調べてたらXPにもftpサーバがあるみたいなのですが XPのを使うのとフリーのftpサーバ使うのは全然違う意味ですか? XP標準にあるならそっちのが楽なのかなぁ?と思ったりしてます
150 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 12:03:14 ] >>149 IISのこと?
151 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 12:04:52 ] IISはXPのProにはあるけどHomeには無いから気をつけて
152 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 12:09:04 ] >>150 そうです XP Proを使う予定でs
153 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 17:17:07 ] 初心者極まりない質問で申し訳ないですが、お願いします。 VB6.0のwinsockオブジェクトを用いて、出来合いのサーバ(ORCA_CLAIM)に データを送信するプログラムを作成してます。 ポートとアドレスを指定して送りたいデータを送信し、 ただクローズするだけなのですが、送信後にサーバのステータスが CLOSE_WAITになったまま消えてくれません。 (# netstat -nap localhost などで確認) そうなると再送信してもポートが現在使用されていますと出て、 エラーを返すのでとても困っています。 サーバソフトの製作元にもたずねて見ましたが、そんな現象はありえないと いうお話でしたので、どうもこちら側に決定的な原因があるようです。 状況説明がうまくないようでしたら申し訳ありません。 何か、ありがちなミスなどありましたらご指摘よろしくお願いします。
154 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 17:41:20 ] winsock1.closeはしてるの?
155 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 17:51:47 ] IISに投げてみたけどCLOSE_WAITにはならないよ Option Explicit Private Sub Command1_Click() Winsock1.LocalPort = 0 Winsock1.RemoteHost = "localhost" Winsock1.RemotePort = 80 Winsock1.Connect End Sub Private Sub Winsock1_Close() Winsock1.Close End Sub Private Sub Winsock1_Connect() Winsock1.SendData "GET / HTTP/1.0" & vbCrLf & vbCrLf End Sub Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long) Dim s As String Winsock1.GetData s MsgBox s End Sub
156 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 18:47:40 ] 同じ質問を過去に見たんだが、解決方法忘れてしまった VBスレの人なら知ってる人いるんじゃない?
157 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 19:29:30 ] >>153 です。皆様レスをつけていただいて有難うございます。 >>154 うーん。Winsock1.closeはやっているのですが、反応がないようです。 >>155 すいませんサンプルソースまで書いてもらって、助かります。 私のソースもだいたいそのような感じなのですが、見直してみることにします。 >>156 有力情報有難うございます。 そちらの方にも尋ねてみることにします。
158 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 20:08:45 ] >>157 どちらが先にクローズする仕様なの?
159 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 23:25:49 ] レス有難うございます。 >>158 www.orca.med.or.jp/receipt/tec/dev/soft/claim.rhtml の(2)によると、送信した側がsocket closeと書いてあるようですので こちら側(送信側)がCloseしなければいけないのかなと考えています。
160 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 23:38:25 ] closeする前にサーバのACK/NAK応答は受信したのかと
161 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 23:41:31 ] 言っとくがTCPじゃなくてアプリレイヤーの話だぞ? >>159 のシーケンスをちゃんと嫁
162 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 23:45:18 ] 見落としてるだけだろ アホとしか
163 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 00:01:16 ] >>159 これだとCloseイベントでcloseしたほうがいいかもしれない。 >>155 のように
164 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 00:32:37 ] closeしなくてもほっときゃ切れるだろ
165 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 01:37:03 ] socketは全二重 送る側だけまずshutdown 読む側でEOFまで全て読み終わるのを確認してからclose これはちゃんとやって
166 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 09:17:58 ] 皆様何度も返信してくださって 厳しいながらもありがたい限りです >>160 そちらの受信は確認しております。 >>161 アプリレイヤーとTCPの違いがまだよく分かっていないのですが、 そこの部分は調べてみます >>163 ちょっとその手法でやってみます >>165 shutdownはwinsockメソッドにはなく、 www.int21.co.jp/pcdn/vb/noriolib/vbmag/9802/winsock/ で見ました。全文読んでいないのでなんともいえませんが、 まだ使い方が不明なので調査してみます。
167 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 23:40:54 ] >>166 > shutdownはwinsockメソッドにはなく、 何言ってるかわからない。 書く側だけまずshutdownしろってのは、 winsockのFAQの初心者向け項目に書いてあること。
168 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 23:47:48 ] 良くこれで仕事が出来るな・・・
169 名前:デフォルトの名無しさん mailto:sage [2009/11/11(水) 00:04:43 ] とりあえずWiresharkで 双方の FIN → FIN,ACK → ACK のどこまで出てるか見てみたら?
170 名前:デフォルトの名無しさん mailto:sage [2009/11/11(水) 05:43:11 ] サーバの開発元に質問するほうもアレだが、ありえないと回答するのもひどいな。 お互い良くそれでプログラマって言えるよな。
171 名前:デフォルトの名無しさん mailto:sage [2009/11/11(水) 18:13:12 ] IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP IdException このへんのコンポーネントってIndyですか?
172 名前:デフォルトの名無しさん mailto:sage [2009/11/11(水) 18:18:28 ] Indyですね
173 名前:デフォルトの名無しさん mailto:sage [2009/11/11(水) 18:27:53 ] >>172 ありがとう IdってIndyって意味だったのか コンポーネントないからビルドできねぇ
174 名前:デフォルトの名無しさん mailto:sage [2009/11/11(水) 23:35:50 ] >>153 > CLOSE_WAITになったまま消えてくれません。 サーバ側のCLOSE_WAITは全く関係ない。お前の作ったクライアントがダメなだけ。 > 何か、ありがちなミスなどありましたらご指摘よろしくお願いします。 自分のバグを他人の所為だと思いたがる態度が、初心者にありがちな重大なミス。 bindしてるだろ。
175 名前:114 mailto:sage [2009/11/12(木) 01:33:52 ] >>120 やっぱ無理だよな、ありがとう >>118 相手がわかってればいいんだけどねぇ
176 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 07:44:31 ] >>128 それじゃ3-wayハンドシェイクが成立しないだろ。可能だと主張するなら動作するサンプルコードを。
177 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 08:50:27 ] >>176 RFC に双方 connect() 時のシーケンス載ってるが?
178 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 09:01:03 ] >>176 RFC793 の figure 8 だけど、rfc1122 でその図の間違 いが訂正されてる。 4.2.2.10 Simultaneous Open Attempts: RFC-793 Section 3.4, page 32 There is an error in Figure 8: the packet on line 7 should be identical to the packet on line 5. A TCP MUST support simultaneous open attempts. DISCUSSION: It sometimes surprises implementors that if two applications attempt to simultaneously connect to each other, only one connection is generated instead of two. This was an intentional design decision; don't try to "fix" it.
179 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 09:25:14 ] > This was an intentional design decision; don't try to "fix" it. うわっ、強引。決めたんだからなおすな。
180 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 09:37:37 ] >>179 違う違う。「実装者は双方同時 open の結果として一つ しかコネクションが出来ないことに驚くかもしれないが、 これはそうなるように『設計』されているので直そうと するな」ということ。
181 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 10:28:32 ] コネクションが2つでなく1つなのは「そのように決めたんだからなおすな」って事でしょ。 なんで、そのように決めたんだろう。 という事は置いておいて、これは同時にconnectが発生した(例外的な)場合に関しての 規定であって、>>118 が言ってるような狙ってできるってもんじゃないよね。
182 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 10:29:35 ] >>174 >自分のバグを他人の所為だと思いたがる態度が、初心者にありがちな重大なミス 逆に自分のせいだと思って散々調べたら自分のせいじゃ無かったってのもよくある まずは切り分けが大事と思い知らされた
183 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 10:44:42 ] >>181 > 狙ってできるってもんじゃない 普通は RST が返るからってこと?
184 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 11:05:05 ] >>181 >なんで、そのように決めたんだろう。 同じIPアドレス、ポート番号のペアを持つコネクション は同時に複数存在できませんから。
185 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 11:18:53 ] 一方のコネクションが確立した後では、1本のコネクションにはならないでしょ。
186 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 11:22:01 ] >>184 なるほど、接続するという選択肢を取るならそのように決めるしかないわけか。 接続しないという選択肢もあったわけだけど、そっちは採用しなかったと。
187 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 22:30:35 ] 双方がwell knonw portになってから接続を開始しているわけだから、 四つ組みが決定している。一つの接続になるのが、設計上当然の帰結。 >>183 いや再送されたのと区別がつかない。 (IPタイムスタンプオプションとかない限り) それに普通のOSではREUSEADDRしたら、 前のは無効になる。
188 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 10:31:37 ] よくわからないレベルで仕事って確実に地雷だなw
189 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 11:26:24 ] 結局サンプルコードはまだ?まさか>>128 じゃないよね
190 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 12:06:33 ] RFCだけ読んで「キリッ」って奴がいかに多いか分かるな 実際のコーディングはまったくできないと。
191 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 12:24:58 ] 自分が仕事出来ないのを棚に上げて人のせいにする奴もいるしな
192 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 14:55:17 ] rfcも実際のコード実装例を描いてくれればいいのだがな。 そういうサイト作ると需要有るのか?
193 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 15:25:53 ] >>189 > まさか>>128 じゃないよね >>128 で何か不足してる? TCP/IP の同時 open は、よくある TCP/IP の状態遷移 図で通常サーバ側とクライアント側で違う経路を通ると ころを両方ともクライアント側の遷移を通るんだから >>128 であってる。 スティーブンス本のどれかで実際のプログラムと実行例 が載ってたよ。但し、双方の SYN が交差する位には充 分に遅い経路を使う必要があったと思う。
194 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 16:24:19 ] >>193 listenしなくて良いのか?
195 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 16:35:49 ] >>194 > listenしなくて良いのか? listen したら駄目なんだけど?
196 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 16:48:04 ] ほい、スティーブンス本での同時 open の話と実行例。 books.google.com/books?id=-btNds68w84C&pg=PA251 上で使われてる sock プログラムのソースコード。 www.icir.org/christian/sock.html listen() を呼び出している servopen() は -s オプショ ンが無いと実行されないけど上の例では -s ついてない でしょ。
197 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 00:43:24 ] cygwinでsockコマンドコンパイルしてlocalhostでやってみたけど、 確かに同時に実行するとconnect成功するね ・・・同時に実行しなければ繋がらないってのは、ちょっと面白いな
198 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 17:23:34 ] 遂にgoogle booksを参照する時代になったか。
199 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 17:31:32 ] 結局、元質問(>>114 )を実現する事はsocketプログラミングの範囲ではできないという結論だね。
200 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 18:08:03 ] できるだろ。釣りかよw
201 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 18:23:33 ] listenの実装を自分で書き換えればいいだろ
202 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 00:05:59 ] >>200 動作するサンプルを。
203 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 01:21:09 ] >>201 socket.h内のSOMAXCONNを1にしたらひどぅい目に遭いましたw 実装の書き換えまで手を出すのは正直無理ぽですね。
204 名前:デフォルトの名無しさん [2009/11/16(月) 04:45:47 ] ttp://x68000.q-e-d.net/~68user/net/c-http-1.html このページを参考に1回connectに成功したらaspxファイルのヘッダとボディのデータを 分けて要求するプログラムを作ったのですがボディのデータを要求するとコネクションが切断されているのかread関数が0を返します。 close関数を使っていなくても1回データを要求したら切断されてしまうものなのでしょうか。ソースは次のレスに記載します。
205 名前:デフォルトの名無しさん [2009/11/16(月) 04:48:30 ] char path[100],buf[1000],host[]="www.nurupo.jp"; struct hostent *servhost;struct sockaddr_in server;struct servent *service;int s,read_size; servhost = gethostbyname(host);bzero(&server,sizeof(server));server.sin_family = AF_INET; bcopy(servhost->h_addr,&server.sin_addr,servhost->h_length);server.sin_port = htons(80); s = socket(AF_INET,SOCK_STREAM,0);connect(s,(struct sockaddr *)&server,sizeof(server)) sprintf(path,"HEAD /gga.aspx HTTP/1.0\r\n\r\n"); write(s,path,sizeof(path)); while(1){ read_size = re ad(s,buf,sizeof(buf)); if(read_size > 0){write(1,buf,sizeof(buf));} else{ break;}} sprintf(path,"POST /gga.aspx HTTP/1.0\r\nContent-Length: 10\r\n\r\nnurupo=gga\r\n\r\n"); write(s,path,sizeof(path)); while(1){ read_size = read(s,buf,sizeof(buf)); if(read_size > 0){write(1,buf,sizeof(buf));} else{break;}} close(s);
206 名前:デフォルトの名無しさん [2009/11/16(月) 05:00:41 ] >>204 >>205 です。 if(read_size > 0){write(1,buf,size_of(buf))} の行のsize_of(buf)はread_sizeでした。 すいません…
207 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 05:42:52 ] HTTP/1.0 RFC1945 1.1は2616
208 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 09:05:10 ] >>204-205 HTTP/1.0はそのように決められている。 HTTP/1.1ではPersistent Connectionsというのがあるが、使い方はかなり難しい。
209 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 09:17:41 ] 別に難しくは無いさ。 リクエストとレスポンスを交互に繰り返すだけであれば。 終端だって、どうやって判断すればよいかちゃんとRFCに書いてある。 chunkの読み出しも、そのまま実装するだけ。
210 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 11:04:36 ] 嘘つきサーバが多いから難しい。
211 名前:デフォルトの名無しさん [2009/11/17(火) 02:24:14 ] テスト
212 名前:デフォルトの名無しさん [2009/11/17(火) 15:47:40 ] >>204 です。 お返事ありがとうございます。 RFC2616やグーグルしたところ、HTTP/1.1はHost: URLを記述しなければいけないとのことだったので 記述し、2回目のデータ要求ではConnection: Closeを記述したところ2回、データを要求することが出来ました。 2回目はBad Requestになってしまいますが。。 RFCを見て、少しやる気をなくしてしまいましたが 出来たらネットワークの勉強に励み、この問題をいつかは解決したいと思います。 ありがとうございました。
213 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 00:14:01 ] UDPのブロードキャストについて質問です pythonとCで書いてます。(例はpythonで書きます) ブロードキャストでデータを送りたいのですが、 setsockoptでSO_BROADCASTを有効にし、 # pythonの例 sock.sendto( data, ( "255.255.255.255", 1234 ) ) としても、受信側で受信できません。 # 受信側のIPアドレスは192.168.11.4 sock.sendto( data, ( "192.168.11.4", 1234 ) ) として、ユニキャストだと受信できることを確認しています。 環境はlinuxです。 ブロードキャストアドレスとして255.255.255.255を使うのは間違ってますか?
214 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 03:25:47 ] それは自分の所属するサブネットの中なの?外なの?
215 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 06:15:52 ] >ブロードキャストアドレスとして255.255.255.255を使うのは間違ってますか? はい
216 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 07:06:20 ] rootにならないとできないとかそういうのもあるよね。
217 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 08:36:47 ] ブロードキャストアドレスとして192.168.11.255と設定してあるだろ。 それ使えよ。
218 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 13:28:28 ] 基本的にネットの負荷が上がるのでブロードキャスト非推奨。 つ ブロードキャストストーム 輻輳を検知するとポート綴じちゃうスイッチも有るよ。
219 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 18:32:47 ] >>214 自サブネット内です。 >>215 はい ありがとうございます >>216 rootになっても変わりませんでした。 >>217 確かに/24で切ってるので、192.168.11.255も試したのですが変わりませんでした。 ハード的におかしいのかと思い、 192.168.11.4を持つマシン上で、サーバとクライアントを動かしたのですが、 結局受信しませんでした。 wiresharkでみるとパケットは観測されてたのですが・・・
220 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 18:44:37 ] promiscus
221 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 19:02:55 ] × promiscus ○ promiscuous
222 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 23:24:41 ] >>219 受信側はどうバインドしてるの? 例えば'192.168.11.4’にバインドしてたらそのアドレスへのユニキャストしか受信出来ない。 ブロードキャストも受け取りたいならアドレスは'' (空文字列)でバインドしなければだめ。
223 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 19:20:27 ] 空文字列? 192.168.11.255にバインドするべきじゃないの?
224 名前:デフォルトの名無しさん [2009/11/21(土) 19:21:12 ] どうみても 0.0.0.0 にバインドです本当にありがとうございました
225 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 19:39:22 ] まったく知識がないんだがどこから手をつければいいのか教えろカスども
226 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 19:50:51 ] .255なんて使うなよw
227 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 19:56:40 ] まずお前が何をしたいのか教えろよカスが
228 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 19:57:53 ] SEXしたい;;
229 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 20:06:44 ] おまえら! N88ベーシックの時代を思い出せ! 使ってるだけじゃだめなんだよ! 利用者全員がプログラマーにならなきゃ世の中は良くならない! そうだろうみんな!!
230 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 20:07:39 ] 食いっぱぐれます
231 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 22:21:39 ] せんせー IPアドレスからgethostbyaddrでホスト名とってくるプログラムをVC++(まあなんでも出来るが)で組んだのだけれど、 もし取ってこれなかった場合 >初回の例外が発生しました: 0x000006BA: RPC サーバーを利用できません。 みたいなのが出力パネルに無視して平気? 一応host名がNULLだった時の退避路はあるし、エラーでプログラムが止まるわけじゃないんだけど なんかわざわざ一回づつ排出するもんだから気になって
232 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 23:24:51 ] try catch
233 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 02:37:25 ] これかな support.microsoft.com/default.aspx?scid=kb;en-us;105675
234 名前:デフォルトの名無しさん [2009/11/24(火) 19:49:11 ] ソケット生成してbindした時点で、データが送られてくると 受信はされるのでしょうか? そこから、recvformで取り出すといった感じなのでしょうか? データを一定間隔で送信し、送信した結果複数の個所からデータが返ってくる とした場合、最初に返ってきたデータだけをデータとして取り込みたいのですが こういった場合、どうするのが最適でしょうか?
235 名前:デフォルトの名無しさん mailto:sage [2009/11/24(火) 20:32:30 ] bindってよく考えたら、0.0.0.0でbindしておけば 自分のIPが192.168.11.4でも recvfromで192.168.11.100 宛のデータも受信できるのでしょうか? (ポート等は同じで、ARPで関連づけておくとして)
236 名前:デフォルトの名無しさん mailto:sage [2009/11/24(火) 20:44:28 ] promiscuous
237 名前:デフォルトの名無しさん [2009/11/24(火) 21:35:41 ] promiscuous は関係ない
238 名前:デフォルトの名無しさん mailto:sage [2009/11/24(火) 21:42:51 ] それより質問の仕方が悪い
239 名前:デフォルトの名無しさん mailto:sage [2009/11/24(火) 22:43:16 ] 通常のモードだと自分のMAC宛のパケットしか受信できない
240 名前:デフォルトの名無しさん mailto:sage [2009/11/24(火) 22:56:11 ] >>239 ARPテーブル操作して、自分のmac向けに別のIPを関連づけたら届きますよね そこで0.0.0.0をbindしておけば自分の今のIPとは違うデータまで受信できるということでしょうか?
241 名前:デフォルトの名無しさん mailto:sage [2009/11/24(火) 23:30:36 ] >>240 MAC判別はネットワークチップの機能だよ
242 名前:デフォルトの名無しさん mailto:sage [2009/11/24(火) 23:37:24 ] >>241 すみません、よくわかってないのですが MAC判別がどう関係あるのでしょうか? 宛先mac自体は、本来の宛先macをarpテーブルで指定してやりますよね
243 名前:デフォルトの名無しさん mailto:sage [2009/11/24(火) 23:42:42 ] 送信する相手のARPテーブルを操作するって事か それが受信できるかどうかはIP層の実装仕様次第じゃないのか? 普通は出来ないと思うが・・・
244 名前:デフォルトの名無しさん mailto:sage [2009/11/24(火) 23:51:53 ] 変なパケットは捨てるのが基本
245 名前:デフォルトの名無しさん mailto:sage [2009/11/25(水) 00:00:49 ] 実装仕様とはNICに依存するのでしょうか? でもmacアドレスはあってる、IP層のIPも送信元がARPテーブル操作してあってる から届くはずだとはおもうんですが
246 名前:デフォルトの名無しさん mailto:sage [2009/11/25(水) 00:52:43 ] > ARPテーブル操作して、 どこのマシンのARPテーブルいじる気だよ。毒入りarp投げるのか? オレの管理下で発見したら接続禁止だぞ。上司が土下座しなけりゃつなげさせない。 > そこで0.0.0.0をbindしておけば自分の今のIPとは違うデータまで受信できるということでしょうか? IPってゆうな。クズ。 例え送信元のARPテーブル操作してパケットが届いたとしても出来ない。 0.0.0.0は自マシンのアドレスに対するワイルドカードだからだ。 もう一回言っておく。IPってゆうな。クズ。
247 名前:デフォルトの名無しさん mailto:sage [2009/11/25(水) 01:18:53 ] 受信したいマシンが 192.168.11.100 というIPを持っていないから無理 RawIPでも使え
248 名前:デフォルトの名無しさん mailto:sage [2009/11/25(水) 01:28:28 ] IPってゆうな。クズ。
249 名前:デフォルトの名無しさん mailto:sage [2009/11/25(水) 01:37:02 ] 単にアドレスって言うのもハンパだろ?
250 名前:デフォルトの名無しさん mailto:sage [2009/11/25(水) 01:45:49 ] IPアドレスを省略するときは単に「アドレス」って言う IPは知的財産の省略形として稀に使うぐらい
251 名前:デフォルトの名無しさん mailto:sage [2009/11/25(水) 02:01:57 ] ネット盗聴ソフトか不正アクセスでもするソフトでも作ってるのかw
252 名前:デフォルトの名無しさん mailto:sage [2009/11/25(水) 03:27:17 ] >>235 環境による >>240 環境による
253 名前:デフォルトの名無しさん mailto:sage [2009/11/25(水) 06:53:48 ] promiscuous
254 名前:デフォルトの名無しさん mailto:sage [2009/11/25(水) 07:32:45 ] >>246 >>247 >>252 さんがいうには、環境によってはできるとのことですが
255 名前:デフォルトの名無しさん mailto:sage [2009/11/25(水) 07:33:57 ] 俺の自作スタックなら何でも出来る
256 名前:デフォルトの名無しさん mailto:sage [2009/11/25(水) 08:02:59 ] >>252 かなりめずらしい環境でないか? 組み込み系のマイナーな スタックとか?
257 名前:デフォルトの名無しさん mailto:sage [2009/11/25(水) 17:54:55 ] WinSockのWSAAsyncSelectについて質問です。 今まで使い方を間違えていたらしく、あちこちのサンプルでは (1) リスニングソケットにはFD_ACCEPTを設定し WSAAsyncSelect(socketListen, hWnd, (WM_APP + 1), FD_ACCEPT)) (2) case FD_ACCEPT内で SOCKET socket = accept(m_sckListen, &addr, &nLength); WSAAsyncSelect(socket, hWnd, (WM_APP + 1), FD_READ | FD_CLOSE) と、個別にFD_READやらFD_CLOSEを設定するのが正解のようです。 今まで私は(1)で FD_ACCEPT | FD_READ | FD_CLOSE と設定し、(2)ではWSAAsyncSelect自体を呼び出していませんでした。 ですが、この状態でもsocket側に通信データが送られてきた際に、きちんとwParam == socketな状態でWD_READが呼び出されていました。 これは、正規の仕様に乗っ取った挙動なのでしょうか? 例えば「リスニングソケットにFD_READなどを設定しておくと、そのリスニングソケットでacceptされたソケット全部にFD_READが自動的にセットされる」とかでしょうか?
258 名前:デフォルトの名無しさん mailto:sage [2009/11/25(水) 18:11:24 ] asyncも分かってないしselectも分かってないな
259 名前:デフォルトの名無しさん mailto:sage [2009/11/25(水) 20:36:58 ] ソケット生成してbindした時点で、データが送られてくると 受信はされるのでしょうか? そこから、recvformで取り出すといった感じなのでしょうか? データを一定間隔で送信し、送信した結果複数の個所からデータが返ってくる とした場合、最初に返ってきたデータだけをデータとして取り込みたいのですが こういった場合、どうするのが最適でしょうか?
260 名前:デフォルトの名無しさん mailto:sage [2009/11/25(水) 20:48:26 ] スタックって自作できるのでしょうか? スタックを自作すれば、L1レベルから入ってきたデータを好きなように取り込めるのでしょうか?
261 名前:デフォルトの名無しさん mailto:sage [2009/11/25(水) 21:07:50 ] IEの仕様書はどこにありますか MicroSoftのサイトの情報見ても全然かゆいところに手が届かない
262 名前:デフォルトの名無しさん mailto:sage [2009/11/25(水) 21:23:21 ] >>259 TCPだとそうだね。acceptしてからだけど。 他のは捨てたいって事なら読んでから捨ててクローズすればいい。 読まずに捨てたいってことなら、それはやらない方がいい。 理由はFAQ読んで。上にも話題に出てる。
263 名前:デフォルトの名無しさん mailto:sage [2009/11/25(水) 21:24:03 ] >>260 > スタックって自作できるのでしょうか? あなたの能力次第。
264 名前:デフォルトの名無しさん mailto:sage [2009/11/25(水) 21:25:05 ] >>259 お前はまずProgramming UNIX Socket FAQを全部嫁。 >>260 できないと思うのなら、それはお前の知識が無いからだ。 >>261 ないんじゃないの?何が知りたいの?
265 名前:264 mailto:sage [2009/11/25(水) 21:25:51 ] うお、かぶりまくったぜ。
266 名前:デフォルトの名無しさん mailto:sage [2009/11/25(水) 22:10:46 ] >>264 FAQよんだのですが、bindした時点でデータがきているかはのってないのですが
267 名前:デフォルトの名無しさん mailto:sage [2009/11/25(水) 22:38:57 ] >>266 自覚して無いかもしれないが、日本語に難ありすぎて意味不明
268 名前:デフォルトの名無しさん mailto:sage [2009/11/25(水) 22:42:18 ] おそらく 「bindしたあと、recvfromをする前に到着したメッセージは 全て、その後の recvfrom で読み出せるのか?」 と質問したいんだろう
269 名前:デフォルトの名無しさん mailto:sage [2009/11/25(水) 23:10:46 ] >>260 BSDのドライバのソースを読む Linuxはダメ!絶対
270 名前:デフォルトの名無しさん mailto:sage [2009/11/26(木) 09:12:07 ] 257です。 >「リスニングソケットにFD_READなどを設定しておくと、そのリスニングソケットでacceptされたソケット全部にFD_READが自動的にセットされる」 これが仕様に基づく正しい動作であることを、英語版MSDNページで確認しました。
271 名前:デフォルトの名無しさん mailto:sage [2009/11/26(木) 11:52:31 ] こんな何の情報もくれないスレに、律義だなぁ
272 名前:デフォルトの名無しさん mailto:sage [2009/11/26(木) 11:55:16 ] Arduinoとイーサネットシールドを勉強すれば プロトコルスタックも作れるよ
273 名前:デフォルトの名無しさん mailto:sage [2009/11/27(金) 00:25:46 ] IE8に導入されたInPrivateブラウズって、保存済みのクッキーすら読み込んでくれないん? クッキーは保存してあるのにリクエストに含まれてこない。 本家サイトみても、”新しくクッキーを保存することはないよん”としか書いてなくてよくわからん。
274 名前:デフォルトの名無しさん mailto:sage [2009/11/27(金) 07:14:43 ] c+winsockでHTTPプロキシ作ろうとしてるんだが ブラウザから送られてきたhostヘッダの部分を接続先にして データを受け流す、みたいな感じでいいのか? その場合httpsの通信はどうするの?
275 名前:デフォルトの名無しさん mailto:sage [2009/11/27(金) 07:50:13 ] hostヘッダがないときでも相手につながないといけないわけだが
276 名前:デフォルトの名無しさん mailto:sage [2009/12/01(火) 22:58:35 ] ブロードキャストで送信しているソケットで、受信もしていて そのソケット宛に、VBのwinsockでブロードキャストで送信しようとすると ローカルコンピュータからは利用できませんとエラーがでたり、 二つのパソコン用意して、同様にVBからHUBを介してそのソケット宛にデータ送ろうとすると 片方はブロードキャストでおくれるのだが、もう片方はデータすらおくれない 同じネットワークにブロードキャスト送信できる数とかに制限あるのかな
277 名前:デフォルトの名無しさん mailto:sage [2009/12/02(水) 00:39:07 ] TCP/IPにはそのような制限はない。 WinsockやVBについては知らないので他の人お願い。
278 名前:デフォルトの名無しさん mailto:sage [2009/12/02(水) 00:50:18 ] 知らないなら黙ってればいいのに
279 名前:デフォルトの名無しさん mailto:sage [2009/12/02(水) 04:36:18 ] そりゃブロードキャストで送ればネットワークに負担がかかるし、不要なPCにもパケット送りつける事になってしまうからなあ。
280 名前:デフォルトの名無しさん mailto:sage [2009/12/02(水) 13:41:20 ] だから何だよ?
281 名前:デフォルトの名無しさん mailto:sage [2009/12/02(水) 15:18:33 ] ブロードキャストって何?
282 名前:デフォルトの名無しさん mailto:sage [2009/12/02(水) 17:14:15 ] 放送
283 名前:デフォルトの名無しさん mailto:sage [2009/12/02(水) 19:57:05 ] PC-HUB-PC でUDPにてお互い同時に周期的に送信していて、たまにパケットが喪失するのですが これってどんな原因が考えられますか?
284 名前:デフォルトの名無しさん mailto:sage [2009/12/02(水) 20:16:18 ] 気にする方向を間違えている その件に関して我々は原因を追究するべきではない
285 名前:デフォルトの名無しさん mailto:sage [2009/12/02(水) 20:24:28 ] >>283 天使の取り分
286 名前:デフォルトの名無しさん mailto:sage [2009/12/02(水) 21:46:07 ] udpでもtcpでもパケットは消失するものなんだよ。 tcp: osがどうにかしてくれる。 udp: 自分でどうにかするか諦める。
287 名前:デフォルトの名無しさん mailto:sage [2009/12/02(水) 21:52:35 ] ただ、HUBを介して単純に超近くのネットワークなのに、他にそのパソコン以外通信なし でも頻繁に損失するものなのかなーとおもいまして 何回に1回とか大体の確率っておおよそでいいからわかるのかなぁ
288 名前:デフォルトの名無しさん mailto:sage [2009/12/02(水) 21:56:49 ] 消失が完全に予測出来るなら暗号に使えるな
289 名前:デフォルトの名無しさん mailto:sage [2009/12/02(水) 22:01:07 ] LAN側に古いハブ使ってるがコリジョンランプがガンガンつきまくってる 仕組みはよくわからんが、よく通信できてるもんだと関心するほどだ
290 名前:デフォルトの名無しさん mailto:sage [2009/12/02(水) 22:51:42 ] HUBを介すのと介さないのでは喪失しやすくなったりするのかね
291 名前:デフォルトの名無しさん mailto:sage [2009/12/02(水) 23:15:48 ] お互いに交互に投げ合ってるならぶつからないだろうけど 同時に投げてるならぶつかるんじゃないのか?
292 名前:デフォルトの名無しさん mailto:sage [2009/12/03(木) 00:03:33 ] 交互に投げ合っててもいつか同時のタイミングが発生しそうな
293 名前:デフォルトの名無しさん mailto:sage [2009/12/03(木) 00:11:30 ] CSMA/CDか 久しぶりに思い出したんで忘れかけてたよ
294 名前:デフォルトの名無しさん mailto:sage [2009/12/03(木) 00:22:50 ] >>290-292 お前等スイッチングハブの「スイッチ」の意味知らないだろ。 パーフェクトシャッフルとかバタフライネットワークとか。
295 名前:デフォルトの名無しさん mailto:sage [2009/12/03(木) 00:25:44 ] なにはともあれ、今つかってるバカハブは捨てるべきだな。俺。 末端のTVとDVDレコ用だけど・・・
296 名前:デフォルトの名無しさん mailto:sage [2009/12/03(木) 00:36:53 ] PC−PC のように単純にケーブル1本でお互い送受信していても UDPならパケットの衝突か消失がありうるということ?
297 名前:デフォルトの名無しさん mailto:sage [2009/12/03(木) 00:44:04 ] 何がおこってもおかしくはない ノイズやバッファオーバーなど色々あるんじゃない? UDPがそれらに保障されてないんだから、プログラマとしてはそれを考慮してプログラムを組むしかない
298 名前:デフォルトの名無しさん mailto:sage [2009/12/03(木) 00:50:43 ] >>296 ループバックインターフェースでも消失はありうる。
299 名前:デフォルトの名無しさん mailto:sage [2009/12/03(木) 01:00:56 ] >>297 バッファオーバーはデータのサイズを小さくもてば少なくなるのかなぁ ノイズでそんなに頻繁になくなるのかな PC-PCとかでも 1分間に10回ほど消失するって大きい?
300 名前:デフォルトの名無しさん mailto:sage [2009/12/03(木) 01:20:10 ] 今では低速なRS232Cでも電気的に失敗することはある クロックだのなんだの、下位の仕事してたころにはこれでいいのかなと疑問に思いながら作ってたもんだ… もちろん通信の失敗を考慮してプログラムしてたが
301 名前:デフォルトの名無しさん mailto:sage [2009/12/03(木) 01:52:47 ] 今時ノイズは余り関係ない。イーサネットで距離も短ければ。
302 名前:デフォルトの名無しさん mailto:sage [2009/12/03(木) 02:02:47 ] プログラム組む側としては、そんな話はどうでもいいんだって。
303 名前:デフォルトの名無しさん [2009/12/03(木) 02:05:58 ] 距離も短くノイズも関係ないとすればたかだがPC間伝送でパケット消失する理由って・・・
304 名前:デフォルトの名無しさん mailto:sage [2009/12/03(木) 02:10:04 ] バッファなりなんなり能力以上の処理が必要になれば当 然パケットは落ちる。忙しい状況は自分のプログラムと は無関係に発生するかも知れない。TCP は再送する。 UDP は再送しない。
305 名前:デフォルトの名無しさん mailto:sage [2009/12/03(木) 08:35:33 ] バカハブは貴重品だぞ。 簡単には手に入らないが価値をしらないバカの手元にあるのはもったいない。
306 名前:デフォルトの名無しさん mailto:sage [2009/12/03(木) 09:22:54 ] スニファ作るとか?
307 名前:デフォルトの名無しさん mailto:sage [2009/12/03(木) 09:24:49 ] 開発用にリピータハブ重宝しております
308 名前:デフォルトの名無しさん mailto:sage [2009/12/03(木) 11:12:41 ] >>299 ping 1時間くらい投げ続けてlossどれくらい?
309 名前:デフォルトの名無しさん mailto:sage [2009/12/03(木) 17:30:01 ] 初歩的な質問ですいません。 よくある「"ABCDEFGH"と送信しても"ABC""DE""FGH"と3回で受信されることもある」という例ですが、 この例は送信がTCP/UDPレベルで計3パケットに分割されたということなるのでしょうか?
310 名前:デフォルトの名無しさん mailto:sage [2009/12/03(木) 17:31:36 ] 送信かもしれない 途中の道かもしれない 受信かもしれない
311 名前:デフォルトの名無しさん mailto:sage [2009/12/03(木) 17:33:06 ] 逆に2回にわけて送ったやつがくっついてることもある
312 名前:デフォルトの名無しさん mailto:sage [2009/12/03(木) 19:10:15 ] 既にクローズされてるソケットにclosesocket使ったらエラーで強制終了される?
313 名前:デフォルトの名無しさん mailto:sage [2009/12/03(木) 19:25:44 ] エラーだが強制終了されない
314 名前:デフォルトの名無しさん mailto:sage [2009/12/03(木) 22:20:48 ] >>309 UDPならAPIレベルでは分割されないよ。 データグラム通信を提供するサービスだから。
315 名前:デフォルトの名無しさん mailto:sage [2009/12/04(金) 00:44:49 ] 何か障害出まくるアプリケーションが多いのがよくわかるスレだ。 絶対はないから、ちゃんと回避手順を考えてプログラム組むべき。 エラーになったらどうするのか。想定してなかったので、そのまま終了じゃゴミ。
316 名前:デフォルトの名無しさん mailto:sage [2009/12/04(金) 22:21:18 ] オーストリッチアルゴリズム最強
317 名前:デフォルトの名無しさん mailto:sage [2009/12/11(金) 00:06:40 ] プロキシを作りたいのですが どうやって作ればいいのでしょうか? 書籍とかあれば教えてください
318 名前:デフォルトの名無しさん mailto:sage [2009/12/11(金) 00:09:04 ] プロ棋士?
319 名前:デフォルトの名無しさん mailto:sage [2009/12/11(金) 00:10:07 ] どのような情報を盗み見たいの?それによって作り方変えないと
320 名前:デフォルトの名無しさん mailto:sage [2009/12/11(金) 00:17:04 ] >>319 透過プロキシ+多層です
321 名前:デフォルトの名無しさん mailto:sage [2009/12/11(金) 00:20:31 ] >>319 サイバー犯罪幇助で通報しますた
322 名前:デフォルトの名無しさん mailto:sage [2009/12/11(金) 02:48:29 ] つまり勝手にパケット横取りしてナニしたいと。
323 名前:デフォルトの名無しさん mailto:sage [2009/12/11(金) 03:10:33 ] 誰かが串通して児ポとかダウンロードした日には死ねるなw
324 名前:デフォルトの名無しさん mailto:age [2009/12/11(金) 03:24:38 ] 透過プロキシ - Google 検索 www.google.co.jp/search?q= 透過プロキシ
325 名前:デフォルトの名無しさん mailto:sage [2009/12/11(金) 09:08:36 ] homepage2.nifty.com/spw/tips/PacketDump.html
326 名前:デフォルトの名無しさん mailto:sage [2009/12/11(金) 12:47:22 ] recvに渡した最大受信バイト数を超えるデータを受け取ると 文字列が途切れて文字列操作に支障が出ることがあるんだが バッファサイズデカくするしか無いの?
327 名前:デフォルトの名無しさん mailto:sage [2009/12/11(金) 12:49:03 ] 最大受信バイト数を超えるデータを受信するわけないじゃんw
328 名前:デフォルトの名無しさん mailto:sage [2009/12/11(金) 17:31:06 ] >>326 n回受信→連結 してから操作しちゃだめなん? 多分 TCP だと思うが、 分割されることだって(1回の send なのに 受け側は recv 2回になった)あるし まとまることだって(2回の send が、受け側は recv 1回でまとまって読めた)ある
329 名前:デフォルトの名無しさん mailto:sage [2009/12/11(金) 19:04:45 ] >>326 バッファサイズをでかくするか、 自分でバッファリングするなりしてやらないとダメだよ
330 名前:デフォルトの名無しさん mailto:sage [2009/12/11(金) 22:14:24 ] proxyってどうやって作るの?
331 名前:デフォルトの名無しさん mailto:sage [2009/12/11(金) 22:31:27 ] そんなレベルの人には関係ありません
332 名前:デフォルトの名無しさん mailto:sage [2009/12/11(金) 23:39:31 ] アプリケーション層じゃなくて なんとか層とかいうレベルの処理をするんだっけ?
333 名前:デフォルトの名無しさん mailto:sage [2009/12/11(金) 23:43:08 ] そうかお前らスキル低いから答えられないのか それなら仕方ないな
334 名前:デフォルトの名無しさん mailto:sage [2009/12/11(金) 23:45:25 ] はいはいそうでちゅよ〜
335 名前:デフォルトの名無しさん mailto:sage [2009/12/12(土) 00:13:27 ] 中途半端に教えたところでレベルの低い人間には無意味だしね
336 名前:デフォルトの名無しさん [2009/12/12(土) 00:35:31 ] UDPのrecvfromで、サイズを指定しますよね そのサイズって、たとえば1400バイトのデータが送られてきて recvfromの引数でサイズを400で指定してやると、400バイトだけ バッファにため込みますよね 残りの1000バイトはどうなるのでしょうか? 次にrecvfromしたときに400バイトだけそこからまたよみこむのでしょうか?
337 名前:デフォルトの名無しさん mailto:sage [2009/12/12(土) 00:40:06 ] yes
338 名前:デフォルトの名無しさん mailto:sage [2009/12/12(土) 00:40:47 ] 嘘を教える奴は最低な奴だと思う
339 名前:デフォルトの名無しさん mailto:sage [2009/12/12(土) 01:02:15 ] >>336 残りの1000バイトは粉みじんになって死んだ・・・
340 名前:デフォルトの名無しさん [2009/12/12(土) 01:04:35 ] では、1400バイトのデータが2回に分けて連続して送信されてきました。 2回送信されたあとに、recvfromで400バイト読んだとすると、 残りのデータはすべて消えるのでしょうか? あるいは、3000バイト読めば全て読めるということでしょうか
341 名前:デフォルトの名無しさん mailto:sage [2009/12/12(土) 01:07:44 ] せめて試してから質問しろよな
342 名前:デフォルトの名無しさん mailto:sage [2009/12/12(土) 01:08:57 ] >>340 1回目の送信が1000バイト、2回目が400バイトだったとしよう。 1回目を400バイトのバッファで受信したら、残り600バイトはパァだ。 2回目の400バイトは・・・おめでとう、すべて受信出来たな。
343 名前:デフォルトの名無しさん mailto:sage [2009/12/12(土) 01:09:54 ] recvfrom 受信バイト - Google 検索 ttp://www.google.co.jp/search?q=recvfrom+受信バイト
344 名前:デフォルトの名無しさん mailto:sage [2009/12/12(土) 01:10:10 ] >>343 Opera使いか?
345 名前:デフォルトの名無しさん mailto:sage [2009/12/12(土) 01:13:52 ] >>1-7 のテンプレは読んだのか?
346 名前:デフォルトの名無しさん mailto:sage [2009/12/12(土) 01:14:35 ] >>345 イミフ
347 名前:デフォルトの名無しさん mailto:sage [2009/12/12(土) 04:10:17 ] ipは途中でルータが処理するの辛く成ったら捨てていいよって通信手順だしな。 届かなきゃ、再送するしか無い。まあ再送しまくると余計にルータが辛く成って捨てられるけどなw お利口なルータは捨てたら一応icmpで通知はしてくれる。ファイヤウォールとかでicmp捨ててたら当然届かないけどw
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 だと通信内容モニタリングはしやすくなるのかな