[表示 : 全て 最新50 1-99 101- 201- 301- 401- 2chのread.cgiへ]
Update time : 05/09 19:49 / Filesize : 97 KB / Number-of Response : 416
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


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

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



1 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 21:07:24 ]
主にソケットに関しての質疑応答スレッドです。

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辺り
足りなかったら適当に付け足してね

前スレ
ネットワークプログラミング相談室 Port22
pc11.2ch.net/test/read.cgi/tech/1222603744/
関連スレ
Java ネットワークプログラミング 【教えて!】
pc11.2ch.net/test/read.cgi/tech/1086238859/

98 名前:デフォルトの名無しさん mailto:sage [2009/01/08(木) 23:45:10 ]
>Winsock Programmer's FAQ (日本語訳)
>www.kt.rim.or.jp/~ksk/wskfaq-ja/

ここを読んでWinsockについて勉強しているのですが Winsock における
オーバーラップI/Oとは、どうゆう概念(仕組み?)でしょうか?

セッション毎にスレッドを作らなくても、数千〜数万のコネクションを効率的に
処理できると説明にあるのですが、どうゆう仕組みでそれが実現されているのか
いまいちイメージができないです・・・

99 名前:デフォルトの名無しさん mailto:sage [2009/01/09(金) 01:59:17 ]
>>98
自己解決しました。(Winsock IOCPでGoogle検索したら
欲しい情報がいっぱい見つかりました)

100 名前:デフォルトの名無しさん [2009/01/09(金) 09:54:07 ]
boost::asioってここのスレ的にどうなの?全く話題に出ないが。
boostスレはともかくとして


101 名前:デフォルトの名無しさん mailto:sage [2009/01/09(金) 19:19:07 ]
boostスレの方がよさげ

102 名前:デフォルトの名無しさん mailto:sage [2009/01/09(金) 22:23:40 ]
ttp://www.nicovideo.jp/watch/sm5774030
このスレの住人的にはコレどうですか?

103 名前:デフォルトの名無しさん mailto:sage [2009/01/10(土) 04:06:09 ]
さあ・・
ハードで作ったほうが面白いのでは

104 名前:デフォルトの名無しさん mailto:sage [2009/01/10(土) 07:38:48 ]
ttp://jp.youtube.com/watch?v=SmHjQMki32E&NR=1
このスレの住人的にはコレどうですか?

105 名前:デフォルトの名無しさん mailto:sage [2009/01/10(土) 08:32:38 ]
さあ・・
隣の芝生は赤かったってことでは

106 名前:デフォルトの名無しさん [2009/01/11(日) 20:10:55 ]
std::istream的なソケットストリームってなぜ作られないんですかね?



107 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 20:40:47 ]
使いにくいからじゃね?selectとかasyncとかしたいし。
そうでない単純なものなら自分でサクッと作れる(たぶん)し。

108 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 20:51:16 ]
>>106
非同期な操作ができないとsocketには向かない。
そういうクラスが欲しいならboost::asioとか調べてみるべし

109 名前:デフォルトの名無しさん [2009/01/11(日) 20:51:28 ]
原理的に不可能ではないってことですか?

110 名前:デフォルトの名無しさん [2009/01/11(日) 20:53:38 ]
>>108
近い将来32コア位が普通になるらしいので、むしろ非同期のほうが
ソケットに向かなくなるのかななどと思いまして。

111 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 21:01:58 ]
socketのようにいつデータが受信されるかわからないものを同期で組むのは面倒だぞ。


112 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 21:06:03 ]
>>110
1スレッド1コネクションでも問題は無いけどね。ネットワークプログラミングの難しさはエラー処理にある。

113 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 21:17:33 ]
>>109
可能だよ。現実にコネクションを標準入出力にリダイレクトするソフトがある。

114 名前:デフォルトの名無しさん [2009/01/11(日) 21:25:09 ]
boost::asioは調べてみたことがあるんですが、あれはパフォーマンスのために
非同期対応にしてるけど結果的にうまくいっていない感じでしたね。

115 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 21:28:19 ]
>>114
それってどういうこと?
非同期モデルは採用したが、それに見合うパフォーマンスが出ていないという話なのか
iostreamベースのラッパーとの相性が悪いという話なのか

116 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 21:29:02 ]
iostreamはともかく
stdioのFILEとして扱うのはそれなりには使われてるってば。



117 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 21:29:55 ]
>>116
それはブロッキングでやってfdopen()して
タイムアウトはalarm()でって古式ゆかしき方法だよな

118 名前:デフォルトの名無しさん [2009/01/11(日) 21:50:21 ]
>>115
重複IOを活かす為の苦心が感じ取れるが、複雑化してしまった感じ。

119 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 21:51:19 ]
>>118
ああ、早い話が綺麗じゃないってことか

120 名前:デフォルトの名無しさん [2009/01/13(火) 18:39:57 ]
socketでサーバライブラリ的なものを作ってます。
Accept後にThread作ってそこで受信応答を行うという、
ごく一般的な方法なのですが、
現状では、階層の一番深いところで受信した
データの解釈と応答データの作成が必要になってしまい、
ライブラリとして意味がなくなってしまいます。
ライブラリには送受信だけさせ、
受信データの解釈と応答バッファの作成は
もっと上の階層で行いたいのですが、
一般的にはどういう方法で行うのでしょうか?


121 名前:デフォルトの名無しさん mailto:sage [2009/01/13(火) 19:40:06 ]
他人に通じる文章書くようにしましょう。

階層の深いところって何の階層だ?
ライブラリとして意味がなくなるのが自明みたいに書いてるが、
他人にはさっぱり

122 名前:デフォルトの名無しさん mailto:sage [2009/01/13(火) 19:51:24 ]
サーバークラスなりが、コールバック動作をするコードになってないってことじゃね。

123 名前:デフォルトの名無しさん mailto:sage [2009/01/13(火) 23:35:09 ]
>>120
こういうのを一般化する時の問題はデータの区切りの判定です。 
どこがデータの区切りで、どこまでデータを読んでから上層に渡せばいいかは
プロトコル依存だからです。 パケットのヘッダに長さが埋め込まれている場合、
CR/LFでメッセージの区切りが指定されている場合等、ひどい場合は階層構造の
データを深くパージングしないと切れ目が分からないなどと言う物も。

>>122
が言う様に普通はコールバックを上層が用意し、データの区切りの判断を
これらのコールバックを呼んで判断するという方法です。 区切りの方法によって
どういうコールバックのインターフェースを用意すればいいかは自分で考えましょう。

124 名前:デフォルトの名無しさん mailto:sage [2009/01/14(水) 00:32:59 ]
コールバックって・・・
クラスって書いてんじゃん

125 名前:デフォルトの名無しさん mailto:sage [2009/01/14(水) 00:51:22 ]
>>124
もしかしてプログラミング初心者?

例えばイベントハンドラで何か動作をさせる、という時に
イベント制御ルーチンにイベントハンドラを登録して
そのイベントハンドラに制御を移すことを「コールバック動作」と言うんだよ。

126 名前:デフォルトの名無しさん mailto:sage [2009/01/14(水) 01:09:20 ]
例えばC++で書くなら
class EventLister {
virtual int OnAccept() = 0;
virtual int OnReveive() = 0;
...
};
class Server {
 EventListerner& handler;
 AsyncServer(EventListerner& handler) : handler(handler) {}
 void receiveexec() { // select後に呼び出される
  handler.OnReceived();
 }
};

のような造りがコールバック動作でしょ。
これで、EventListenerを継承して自分のやりたいことをやるものを作り
コンストラクタに渡すようにすれば、
必要なときにServerからコールバックされるように出来るでしょ。



127 名前:デフォルトの名無しさん mailto:sage [2009/01/14(水) 01:17:13 ]
メッセージのクラスと応答のクラスを作ればいいんじゃね

128 名前:デフォルトの名無しさん mailto:sage [2009/01/14(水) 02:57:49 ]
>>123
SOCK_STREAMじゃなくてSOCK_RAWを使ってるってこと?

129 名前:デフォルトの名無しさん [2009/01/14(水) 09:07:00 ]
ふぁひょふっへって、でへばいいべおいいんじゃねぇぇっぇええぇええの?

130 名前:123 mailto:sage [2009/01/14(水) 09:41:10 ]
>>124
あ、ごめん、 そうだね。 じゃ、C++的には長さ、区切り判定をするメソッドを
virtualで定義し、実装をサブクラスで行うのがいいですね。
>>128
TCP(SOCK_STREAM)という前提で私は話してました。 receiveで受け取ったデータはtcpの
データグラムと一致している保証もないし、データグラムが上位階層の送信単位と一致する
保証もないので切り分けは上位階層の知識が必要になります。 >>120さんはそこらへんの
必要性は分かっているという印象は受けました。

131 名前:デフォルトの名無しさん mailto:sage [2009/01/14(水) 10:03:27 ]
>>126
え、それをコールバックって言っちゃうの?

132 名前:120 [2009/01/14(水) 10:12:36 ]
みなさん回答ありがとうございます。Cっぽくコールバックでやろうと思ってましたが
>>126を参考にしたいと思います。

133 名前:120 [2009/01/14(水) 10:23:30 ]
デリミタだけは確定しているため、そこだけはスレッドの中でやってしまうつ
もりです。デリミタが来たら受信を終了しコールバックで解釈、応答バッファを作成しも戻ってきたところで、sendさせます。

134 名前:デフォルトの名無しさん mailto:sage [2009/01/14(水) 10:27:04 ]
>>131
ja.wikipedia.org/wiki/%E3%82%B3%E3%83%BC%E3%83%AB%E3%83%90%E3%83%83%E3%82%AF_(%E6%83%85%E5%A0%B1%E5%B7%A5%E5%AD%A6)#.E5.AE.9F.E8.A3.85

135 名前:デフォルトの名無しさん [2009/01/14(水) 13:45:30 ]
Java臭がする糞ースだと思った。

136 名前:デフォルトの名無しさん [2009/01/14(水) 16:52:06 ]
この問題なんですが、解答あってるでしょうか?

msgbox "変数aの値は" & a & " , 変数bの値は" & b

この文を先頭から2つ目の&までとその後の部分に分け、正しく2行で記述しなさい。
また、変数a,bの値がそれぞれ10,20である場合に、実行したときに表示される
メッセージボックスの中の記述内容を書きなさい。

解答。

msgbox"変数aの値は" & a &
msgbox"変数bの値は" &b

変数aの値は  10
変数bの値は  20





137 名前:デフォルトの名無しさん mailto:sage [2009/01/14(水) 16:55:56 ]
誤爆か

138 名前:デフォルトの名無しさん mailto:sage [2009/01/14(水) 21:15:59 ]
ウンコマン

139 名前:デフォルトの名無しさん [2009/01/15(木) 10:24:38 ]
ネットワークプログラミングの究極の目的は
自分のPCにソフトをインストールしない
ということでしょうか?
つまり自分のPCにエクセルが入ってなくてもネットワーク経由でエクセルがつかえる
のように。
しかし、エクセルの入ってないPCと入っているPCをLANでつないでもエクセルは操作できませんでした。
ところが、詰将棋ソフトはPCに入ってなくてもLAN経由でできました。
これはどういうことなんでしょうか?

140 名前:デフォルトの名無しさん mailto:sage [2009/01/15(木) 11:42:25 ]






















    




141 名前:デフォルトの名無しさん mailto:sage [2009/01/15(木) 11:44:48 ]



























142 名前:デフォルトの名無しさん mailto:sage [2009/01/15(木) 12:45:19 ]
>>139
>ネットワークプログラミングの究極の目的は
>自分のPCにソフトをインストールしない
>ということでしょうか?
>つまり自分のPCにエクセルが入ってなくてもネットワーク経由でエクセルがつかえる
>のように。

それはただのクラウドコンピューティングの一環。
ネットワークプログラムそのものに目的はないんじゃないか。
目的を達成する手段の一つとしてネットワークプログラミングがあるだけで。


>しかし、エクセルの入ってないPCと入っているPCをLANでつないでもエクセルは操作できませんでした。
>ところが、詰将棋ソフトはPCに入ってなくてもLAN経由でできました。
>これはどういうことなんでしょうか?

知るか。
ソフトの仕様による。
どうしても操作したけりゃRealVNCでも突っ込んどく?
チェケラッチョ
ttp://www.vector.co.jp/soft/win95/net/se324464.html

143 名前:デフォルトの名無しさん [2009/01/15(木) 22:00:55 ]
誰かWinsockでUDPで音声を送信して、受信して再生するプログラムのCかC++の
サンプルソースください。
ボイスチャットみたいなものを作ってみたいのです。

UDPで音声データを送信〜受信的なところまでは分かるのですが、
受信したものをどうやって再生するんだよ!という状態です。

1回ファイルに書き込んでそれを再生というのも冗長な気もしますし、
だからと言ってPlaySoundでもメモリ上から〜というのも
エンドレスで受信されるデータにどう対応して良いか分かりません。

ググっても、『音声や動画のようなものにはUDP!』というところまでしか出てきません。

ヒントでも参考URLでも良いのでお願い致します。

144 名前:デフォルトの名無しさん mailto:sage [2009/01/15(木) 22:11:36 ]
「voice chat 使用言語」でググればいっぱい海外サイト出る

145 名前:デフォルトの名無しさん mailto:sage [2009/01/15(木) 22:47:31 ]
>>144
ありがとうございます!
母国語以外を無意識に避けていて気付きませんでした!
私のような愚か者がいるから日本の国力が低下するのですね!
これからは他のことでも進んで他国語からも情報を得る努力をします!
1人でも国力底上げしてやるぜYEAH!!!!

146 名前:デフォルトの名無しさん mailto:sage [2009/01/16(金) 13:24:15 ]
YEAH!!!!



147 名前:デフォルトの名無しさん mailto:sage [2009/01/16(金) 19:14:35 ]
ふつーwave〜系APIとか、DirectSoundとか
DirectShowとか使うと思う。というか、受信した
データをどうするかはスレ違いか。

148 名前:デフォルトの名無しさん mailto:sage [2009/01/16(金) 23:05:49 ]
>>143
>>102 javaだけどね。

149 名前:デフォルトの名無しさん mailto:sage [2009/01/16(金) 23:14:56 ]
なにを言ってるんだ

150 名前:デフォルトの名無しさん [2009/01/17(土) 13:05:27 ]
質問です
WindowsのVC++でネットワークのアプリを作成しているのですが、通信速度を制限して通信する方法ってありますか?
例えば最大でも30kbpsまでしか速度を出さないように送受信するにはどうすればよいでしょうか?

151 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 13:12:15 ]
>>150
1秒毎に4kバイトずつsendを呼べばいいんじゃね?

152 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 13:14:18 ]
1. ネットワークドライバを作る
2. 例えば最大でも30kbpsまでしか速度を出さないように送受信する
3. そんなの作らずにあるもの使えばいいじゃん

153 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 13:35:52 ]
ダウンロードならBITS使うという手があるんだがなー

154 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 01:24:29 ]
>>151-153
d

155 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 15:38:38 ]


156 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 01:28:32 ]
なんかCやC++で作成してる人が多いみたいだけど、
サーバーで送受信部分をPHPとかで作ってる人って居ないの?



157 名前:デフォルトの名無しさん [2009/01/21(水) 10:25:56 ]
PHPでやる意味がない。

158 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 11:23:26 ]
そういやレンタル鯖にperlの串置いて踏み台にするとか昔流行ったな
まあphpは板違いだな

159 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 19:54:19 ]
パケットキャプチャしてみたがIPフラグメントがされてない
あきらかに64kb以上のデータを取得しているのにどうしてなんだ!

160 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 21:56:16 ]
1パケットって何バイトだった?


161 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 22:04:02 ]
バケラッタ!

162 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 22:28:43 ]
TCP送信に関して以下の認識でOK?

「デーーーーーーーータ」

データを分割
「データ」、「データ」、「データ」

IP付けて送信
IP head+TCP Head+「データ」 , IP he〜〜〜


それと、
IP head+TCP Head+「データ」から「デーーーーーーーータ」に
再構築するソース教えてくれ

163 名前:デフォルトの名無しさん [2009/01/21(水) 22:55:22 ]
「デーーーーーーーータ」

データを分割
「デーーー」 、「ーー」、「ーーータ」

IP付けて送信
IP head+TCP Head+「データ」 , IP he〜〜〜

受信
「ーーータ」、「ーー」、「デーーー」


164 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 23:04:55 ]
TCPはスライド窓だからターデはありえない


165 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 23:16:05 ]
http〜 001.zipをダウンロードしているとき(web閲覧時も
IPヘッダみてもFlagが分割不可になっているのはなぜ?
パケットの取得方法は、PacketFilterExtensionPtr関数。

166 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 00:19:29 ]
皆さん如何されているかアイデアを聞かせてほしいんですが

たとえば、不特定多数が使用するクライアント・サーバ型のソフト(MMO等)を作るとして、
データのやり取りはUDPで行うとします。
不正なデータを送られたり、受信したデータから不正な処理をされないためには
データを暗号化して通信する必要がありますが、そのキーを何処に隠すとよいと思いますか?

クライアント側で暗号化したデータをサーバで復号する、またその逆の場合、
クライアントはサーバと通信する為に、鍵を持っている必要がありますが
コード上やリソース上に持たせてしまうと、バイナリエディタなどからバレてしまう可能性があります。

ここで、脅威の対象を仮に
・28歳 男性 独身
・趣味はネトゲ(botツール常習者)
・プログラミングの知識は大学で習った程度、逆アセンブルなどは出来ない
・バイナリエディタなどでパラメータを触った経験はあり
とします。この人にクラックされない仕組みを作りたいです。

色々考えましたが堂々巡りです。

案1)通信確立用のキーをクライアントのコード上、またはリソース上に持たせ、
  通信確立はそのキーで行う。その後はサーバで新たなキーを発行する。
→そもそも通信確立用のキーがクラックされれば全く意味が無い

案2)時刻をパラメータに定期的にキーを生成する。
→クライアント・サーバで完全に時刻を同期する必要あり。実現不可能

案3)暗号化部分をdll化し、さらにそのdllを暗号化し、コード上で復号して呼び出す。
  dllを暗号化したキーはリソース化し、リンク
→トレースされたら意味なし

よいアイデアお待ちしてます。



167 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 00:26:50 ]
暗号についての教科書でも読め

168 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 00:30:47 ]
>>166
普通に非対称鍵暗号使えばいいんじゃ

169 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 00:32:48 ]
共通鍵方式であれ公開鍵方式であれ鍵の扱い方は教科書には載ってない

170 名前:166 mailto:sage [2009/01/22(木) 00:40:06 ]
>167-169

『コード上に載っている鍵をバイナリエディタなどで不正に読み出し、
正規とは別のデータを暗号化し、サーバからみたら「正常な」データを送りつける』のが
BOTツールだと思うので、対象鍵であれ非対象鍵であれ、
暗号化に使う鍵がばれてしまう事自体が問題だと思うんですが。

というか、世に出回っているネットワークプログラムは、どういう対策をとっているのだろうか・・

171 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 00:40:23 ]
>>166
通信確立用のキーがクラックされることを考えるなら、
復号直後のデータを抜かれるクラックも想定が必要ということ?

いずれにしても通信経路上の他人に隠すならともかく、
PCの所有者にその想定で隠すのは無理と思う

172 名前:166 mailto:sage [2009/01/22(木) 00:44:55 ]
>>171
幾ら対策してもMMOにBOTツールやアカウントハックが無くならないのはやはり仕方がないのでしょうか。
どれだけ厳重な金庫にお金を隠しても、金庫の鍵がそこにあれば泥棒は簡単に取っていけますからね。


173 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 00:50:25 ]
通信の傍受は防げてもプログラムのクラックはいたちごっこだな

174 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 03:48:20 ]
>>166
正規なクライアントだけが持っている情報は一切全く無い、と仮定
するけど、正規なクライアントだけ通信できるようにしたい、ってのは
原理的に不可能だと思う。

ただ、MMO なら、ユーザごとにアカウントとパスワードで接続してるので
それを秘密キーにすれば、正規クライアントかどうか判定はできるんじゃないかな

現実的には案1で十分だと思う。クライアントソフトのクラックは別途対策する
(nProtectとか)ことが多いかと


175 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 11:13:02 ]
中間者攻撃というのがあってだな…。

昔P2Pで適当なループ作って署名付けて二回回すってのを考えたけど
結論覚えてないや(w

176 名前:175 mailto:sage [2009/01/22(木) 11:14:40 ]
思い出した。↑の方法でも中間者攻撃対策にはならないんだった。



177 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 11:25:02 ]
正規のクライアントがクラックされてクローンを作られるのは防ぎようがないかな。

どうしても防ぎたければB-CASカードみたいな対タンパ性のあるハードウェアを
使うとか。

178 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 19:16:30 ]
>>168
ここで答え出てるだろ。
クライアントでランダムな非対称鍵作って
暗号化用の鍵を相手に渡す。

179 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 21:43:51 ]
MMOみたいな延滞厳禁な物に対して
暗号化を施すのも正直どうかと思うけどな

180 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 22:00:40 ]
暗号化コストなんて送受信に比べたらカスみたいなもんだろ

181 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 23:33:12 ]
共通鍵にしろ公開鍵にしろ
強度を高めようとしたら結構負荷がかかるぞ

そもそも暗号と高速化は相反する物だし

182 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 10:01:21 ]
暗号化コストは結構でかいよ。
LANでギガビットイーサ+SSHだとネットの性能に暗号処理がおいつかない。

性能が必要ならストリーム暗号かね。

183 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 11:36:09 ]
お前は一体何の話をしてるんだ

184 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 17:20:28 ]
MMOでクライアントからサーバーに巨大なデータは送らない。

185 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 17:20:09 ]
UDPの受信で到着順番が入れ替わる対応をするため
受信データにシーケンシャルなインデックスを入れて
受信時にソートするとする。

その場合、処理してしまったデータより前のデータが飛んできた時の処理って
仕様によるとは思うんだけど、どうするのがいいかな?
やっぱ捨てるの?

186 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 18:34:50 ]
必要なら取り込む、不要なら捨てる



187 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 10:42:57 ]
185が自分で言っているように仕様によるとしか言えない。

188 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 13:31:10 ]
やっぱそうだよなー
でもせっかく届いたデータを捨てるのも勿体無い気がする・・・

設計自体を変えるしかなさそうだな。
色々試してみるお、ありがと。

189 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 13:38:41 ]
そこを頑張り過ぎるといつのまにか劣化TCPを作るハメになるぞ

190 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 13:50:27 ]
分散コンピューティング環境では思い切りが必要。

191 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 14:46:45 ]
迷ったら、TCPを使わない理由を考えなしたほうがいい

192 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 22:02:47 ]
意味判らんが
UDPの方がプログラマ寄りの考え方だぞ

193 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 22:24:03 ]
それこそ意味がわからん。

194 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 22:27:12 ]
プログラマ寄り?

195 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 22:51:09 ]
まあ生パケットに近い (=プログラマの裁量範囲が大きい) と
言いたかったのではないかとエスパーしてみる。

196 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 23:08:06 ]
じゃあアセンブラで書けよ。



197 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 23:30:12 ]
また意味わからん奴が出てきたぞ

198 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 08:55:02 ]
TCPとUDP、この2つで十分というのはおもしろいと思う

199 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 11:31:29 ]
十分じゃないからその上の層にも下の層にもプロトコルがあるんだろうが。
tracerouteコマンドのように下の層を直接使うアプリもあるし。

200 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 20:28:26 ]
ネットワークプログラミングに興味を持って始めてみようと思うのですが、
Windowsではwinsockが主流なのでしょうか?
長らく更新されていないようですけど、それだけ完成度が高いということですか?

201 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 21:30:45 ]
うん

202 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 21:38:43 ]
HTTPリクエストだけならWininetAPIの方が楽ちん

203 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 22:09:07 ]
Winsock以外のプロトコルスタックの実装もあるにはあるけど、実際に使われてるのを
最近は見たことない。Winsockで十分だからね。

204 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 22:30:39 ]
なんか意外な気もしますが普通に現役なんですね
取っ掛かりは簡単そうだし、少しやってみようと思います

205 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 22:34:01 ]
ptrace(2)を使うのはほとんどのUNIXでお勧めではない。
詳しくはmanpageを読んでくれ。

206 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 03:58:49 ]
ふつ〜straceだよね



207 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 09:08:04 ]
tracerouteは
UDPを投げてICMPの戻りを使うタイプのものと
ICMPを投げてICMPの戻りを使うものがある
この理解であってる?


208 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 14:05:03 ]
あってる。

Linuxには-Iオプションとかもあるな。

209 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 23:21:46 ]
ちょっと引くぐらいくだらない質問だと思いますが、教えてください。

TCPやUDPなどにはヘッダの構造が定義されていますが、
ポートからヘッダの構造に従ったパケットを送信しさえすれば
後はヘッダに定義したあて先にパケットが届くということでいいのでしょうか?

つまり、大雑把にいうとヘッダ構造にしたがってパケットを送信できれば
一応イーサネットの通信はできるという認識はあっているでしょうか。
(品質やエラー処理などは考慮しないとして)



210 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 23:45:01 ]
そこいうポートって?

211 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 23:47:25 ]
「で」が抜けた

212 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 23:49:15 ]
あ、すいません。
書き方が悪かったです。

ここでのポートは、組込み開発のボード上にある
物理的なLANポートのことです。

213 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 00:01:21 ]
>>209
恐らくネットワークの下層の存在を知らないんじゃないかな? 
TCP, UDP, IPまでは物理的な通信ハードウェアとは隔離されたレベルの
通信規格。 

その下層にあるデータリンク層がLANの場合ならIPアドレスから
イーサネットのアドレスへの変換、イーサネットヘッダーの追加、
イーサネットチェックサムの計算等をやってくれている。
ここの規格はネットワーク技術によって異なる。 他に
身近なものではwifiとかDSLで使われるPPPoEとか。

で、さらにその下の物理層が具体的な電気信号への変換を行う。


214 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 00:11:50 ]
>>209
ファーム支援が何もない状態って事だよね?
ARPをちゃんと理解しないと、
イーサネット上でIPパケットを出すことは難しいよ。
ルーティングの知識もいる。

> その下層にあるデータリンク層がLANの場合なら

ルータの裏蓋程度の中途半端な知識で語るのやめれ


215 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 00:12:12 ]
>>213
そういうことですか・・・少し理解が進みました。
ありがとうございます。

昨日からあるボードのイーサネットのソース解析を
行っているのですが、まったく知識がない状態で
解析しているので何が何だかわかっていないのです。

確かにソース上で、MACアドレスの取得(ARP?)を行ったり、
イーサネットヘッダの追加やチェックサムの計算を行っていました。

要はその部分がデータリンク層の実装ということですね。

ということは、データリンク層までを実装して
そのパケットをLANポートから送信してあげれば
イーサネット通信ができるということでいいでしょうか。

・・・もうソースを見ても何が何だかという感じです。
多少取っ掛かりはみえてきましたが。

216 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 00:16:08 ]
>>214
そのファームの移植・・・という作業なのです。
(CPUが異なるボードへの移植です)

私はペーペーなので勉強も踏まえてという位置づけなのですが、
できるところまでやってみろという感じで
何とかやり遂げないとまずい状態にいます。

ちょっと憂鬱です。



217 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 00:20:12 ]
>>3の本は読まないとね。

218 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 00:36:20 ]
>>215-216
WireShark とかインストールして、ネットワーク上のパケット
見れば理解が少しはすすもかも。

どうせ、デバッグ段階でお世話になるだろうし。

219 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 00:37:35 ]
移植するのに上位層から眺めてたら、わけわかめになるんじゃないの?

220 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 01:12:00 ]
>>214
一応ルーターベンダでルータのコードいじってた。 IP, ルーティングが主専門だったが
時々データリンクもいじったし、ブートROMを新しいハードに移植もしたことある。

>>215
>ということは、データリンク層までを実装して
>そのパケットをLANポートから送信してあげれば

まだまだ。 データリンク層は下層の通信技術によって異なるが、これも
標準で定義された規格を実装しているハードウェア非依存のコード。 
コンパイルすればいいだけで「移植」は必要ないはず。 

移植が必要なのはその下のMAC層。 ここがイーサネットポートのチップと
実際にやりとりをする。

221 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 01:15:50 ]
「データリンク層がLAN」とか良く言えるなw

222 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 01:19:58 ]
>>220

223 名前:213 mailto:sage [2009/01/30(金) 02:55:55 ]
>>221
かなり変だったね。 スマン。 単に「イーサネットのLANの場合、データリンク層は」と
言いたいのが言葉が絡まってしまった。
>>219
普通は最下層からも攻めますよね。 デバッグビルドでドライバの最下層の
ルーチンを独立に叩いてチップのレジスタを表示したり設定するデバッグコマンドを
いじりながらまずチップが叩ける様にするというのが常套手段でしょうか。

224 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 03:10:24 ]
>>223
そういうやり方もありかと
あと、TCPで使うタイマーをどうするかぐらい?
ハードに依存した部分がソースで分離されてれば楽だろうね。
209は自分のMACアドレスとかどうするつもり何だろう?

225 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 22:07:47 ]
>>218
今日はEtherealを使ってパケットのやり取りをみてみました(ARPだけですが)
確かに理解は進んで、イメージがつかめてきました。

>>219
・・・うーんそうですね。まだ解析方法自体へたくそなんだと思います。

>>220
BootROMを新しいハードに移植!
まさに今私がやらなければならない作業です。
初めての開発作業で、しかもファームの開発なので
デバッグもままなりません。やりがいはありますが・・・。

>移植が必要なのはその下のMAC層。
このキーワードが解析・移植作業のヒントになりそうです。
根元の部分のみ置き換えてやればいいんですね。
今日先輩にも同じようなことをいわれました。

>>224
いえ自分のMACアドレスというわけではなく、
ARPで宛先のMACアドレスを取得したかっただけです。

皆さん色々と助言をありがとうございます。

まだ来週からは、パケットの送受信をハードがどう行っているかの解析や
TCP/IPやらUDPやらその他もろもろの解析が続くので
苦労の日々は続きそうです。

また何かあれば相談させていただくかもしれませんが、
よろしくお願いします。


226 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 23:24:38 ]
なぜいまさらEtherealなの?最新のWiresharkにしときなさい。



227 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 02:00:22 ]
>まだ来週からは、パケットの送受信をハードがどう行っているかの解析や
>TCP/IPやらUDPやらその他もろもろの解析が続くので

そういうのは文献見りゃ分かるんだから解析とは言わない

228 名前:779 [2009/01/31(土) 12:40:14 ]
WinSockでデスクトップイメージの通信を行っていますが、
クライアントの接続を切ったとたんに、サーバーが異常終了して
しまいます。原因がわかりませんか?

uproda11.2ch-library.com/src/11154199.zip.shtml

お願いします。

229 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 12:54:42 ]
コードを流し見しただけだが
ソケット関係は入出力を含めてエラー処理が甘すぎ

230 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 13:13:07 ]
何も見てないがWinSockのせいじゃないぞ


231 名前:デフォルトの名無しさん [2009/02/01(日) 13:00:01 ]
>>230
何のせいですか?

232 名前:デフォルトの名無しさん [2009/02/01(日) 13:12:27 ]
>>229-230
例外を処理していないのが原因だったようです。
ありがとうございました。

233 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 13:19:05 ]
server側のFD_CLOSEにトラップしかけてトレースしたらすぐ分かるでしょ

234 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 16:26:44 ]
>>228
Backdoor....ヒィーーーーッ、ガクガクブルブル

235 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 17:23:23 ]
やべっ
落として実行しちゃったけどBackdoor仕掛けられちゃったか・・・



236 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 21:40:15 ]
ご愁傷様です



237 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 21:51:01 ]
落としてる途中で
怪しいと思ったので
放置してたんだけど
やっぱそうなん?

238 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 21:52:39 ]
あっぶね
落したけど実効はしてない

239 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 22:20:37 ]
UDPのソケットを作成してbind後に
どこかのアドレスにsendtoすると
selectでreadfdsが反応しちゃうんだけど
そゆもの?
なんで自分が受信可能になるの?

240 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 22:21:47 ]
ちゃんとselect用のsocket分けてますか

241 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 22:48:30 ]
ソケットは1つしか作成していません。
そのソケットをbindしてselectにセットしています。
さらにそのソケットでsendtoしてるんだけど、
それがまずいってことですか?


242 名前:239 mailto:sage [2009/02/01(日) 23:25:56 ]
すいません、送信アドレスが127.0.0.でしたorz
申し訳ないです、忘れて下さい(´・ω・`)

243 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 23:58:27 ]
。゜(゚´Д`゚)ノウンコ-

244 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 00:11:28 ]
タヒぬ

245 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 02:12:56 ]
>>228を落としてウィルススキャンして見たんだが反応しない
バックドアってどうしたら発見できるの?

246 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 03:04:46 ]
作っているアプリの名前がbackdoor?



247 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 06:21:16 ]
デスクトップイメージを送信している
それだけでbackdoorと言っても差し支えない

248 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 01:11:56 ]
>すいません、送信アドレスが127.0.0.でしたorz
ワラタ


249 名前:デフォルトの名無しさん [2009/02/03(火) 23:29:30 ]
LinuxでIPアドレスが分かっているLAN内の他のホストのMACアドレスを知るプログラムを作りたいのですがどうすればいいですか?

できれば、他のプロセス(arpコマンドなど)は起動せず、
標準的な(apt-getせずにubuntuで使える)関数で簡単に数行で記述出来ると望ましいです。

250 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 23:34:48 ]
なんでping→arp -aがだめなの?

251 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 23:53:07 ]
ARPパケットの送信と受信がしたいのでは?

252 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 00:34:10 ]
arp -a
一行

253 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 00:50:26 ]
ttp://publib.boulder.ibm.com/infocenter/systems/index.jsp?topic=/com.ibm.aix.commtechref/doc/commtrf2/arpresolve_common.htm
ttp://publib.boulder.ibm.com/infocenter/systems/index.jsp?topic=/com.ibm.aix.commtechref/doc/commtrf2/arpupdate.htm


254 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 12:40:11 ]
>>249
arpのソースをリンクすればいいんじゃないか?

255 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 13:27:29 ]
>>254
ライセンス関連であまり悩みたくないので他のプログラムのソースを取り込むのは避けたいです。

できればarp()やget_remote_mac()のようなAPIがあれば嬉しいのですが。

256 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 13:29:23 ]
>>253
ありがとうございます。参考にします。



257 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 13:30:26 ]
>>250
他のプロセスを起動したくないからです。

258 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 13:40:19 ]
注文が多いのう

259 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 16:18:33 ]
>>255
つ www.netlib.org/


260 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 16:20:51 ]
>>259
あ、逆だった。 こっちだ orz
www.packetfactory.net/libnet/ 

261 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 21:38:43 ]
>>257
Linux前提なら /proc/net/arp 読めばいいんじゃね?
arpコマンドだってこれ読んでるだけだよ。

キャッシュにないときの処理は後自分で考えるんだぞ。

262 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 21:49:06 ]
キャッシュについては
ていうかpingも自分で実装?

263 名前:デフォルトの名無しさん [2009/02/04(水) 23:54:13 ]
>>260
ありがとうございます。
やっぱり標準装備のライブラリじゃできないですかね。。
導入するならこれかlibpcapかな。


264 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 23:55:38 ]
>>262
いや、接続しようとするだけで問題なし。
出来なくてもARPは行われるから。

265 名前:デフォルトの名無しさん [2009/02/04(水) 23:56:02 ]
>>261
ありがとうございます。
確かにそれはいいアイディアですね。
テキスト処理が若干面倒ですが。

266 名前:デフォルトの名無しさん [2009/02/04(水) 23:57:50 ]
>>262
御存じのこととは思いますが、pingとarpキャッシュは直接関係ありませんよ。
pingがアドレス解決するのでその副作用でarpキャッシュが更新されるだけです。



267 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 17:34:42 ]
>>264
確かにそれはいいアイディアですね。
自分でARP投げるのも出来ませんかね。

268 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 18:11:46 ]
ttp://www.itbook.info/study/arp3.html

269 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 21:37:23 ]
https://arco.esi.uclm.es/svn/public/misc/scapy/arping.py

270 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 22:45:25 ]
ttp://www.secdev.org/projects/scapy/
ttp://www.secdev.org/projects/scapy/demo.html

271 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 22:45:39 ]
>>267
こっちが聴きたい。「あなたは実装できないのですか?」

272 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 22:47:14 ]
www.designandcommunication.co.jp/Python/packet.html

273 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 22:49:29 ]
>>271
Cでは出来るけど >>249 の言うような

>できれば、他のプロセス(arpコマンドなど)は起動せず、
>標準的な(apt-getせずにubuntuで使える)関数で簡単に数行で記述出来ると望ましいです。

「標準的な関数で簡単に数行で」って言われると
自分の関数リンクするのもアウトだろうから
arp -a 以外に思いつかない

274 名前:デフォルトの名無しさん [2009/02/05(木) 22:55:44 ]
ilab.cs.byu.edu/python/
heather.cs.ucdavis.edu/~matloff/Python/PyNet.pdf
www.amazon.co.jp/Foundations-Python-Network-Programming/dp/1590593715
d.hatena.ne.jp/rintaromasuda/20060521/1148167342
www.onlamp.com/pub/a/python/2006/08/10/untwisting-python-network-programming.html
simonwillison.net/2004/Feb/18/advanced/

275 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 23:27:45 ]
under Linux only
import sys
import string
import struct
from socket import *

proto = 0x55aa
s = socket(AF_PACKET, SOCK_RAW, proto)
s.bind(('eth1', proto))
ifName, ifProto, pktType, hwType, hwAddr = s.getsockname()
srcAddr = hwAddr
dstAddr = '\x01\x02\x03\x04\x05\x06'
ethData = 'here is some data for an ethernet packet'
txFrame = struct.pack('!6s6sh', dstAddr, srcAddr, proto) + ethData
print 'Tx[%d]: ' % len(ethData) + string.join(['%02x' % ord(b) for b in ethData], ' ')
s.send(txFrame)
rxFrame = s.recv(2048)
dstAddr, srcAddr, proto = struct.unpack('!6s6sh', rxFrame[:14])
ethData = rxFrame[14:]
print 'Rx[%d]: ' % len(ethData) + string.join(['%02x' % ord(b) for b in ethData], ' ')
s.close()

276 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 23:31:13 ]
なんとか出来そうです
ありがとうございました



277 名前:249 ◆ZHAPRHY6Ag [2009/02/06(金) 00:13:24 ]
話の流れが分からなくなりつつあるので名前を付けます。

ちなみに私の書き込みは下記のレスです。

>>249 >>255-257 >>263 >>265-266

278 名前:249 ◆ZHAPRHY6Ag [2009/02/06(金) 00:27:48 ]
大切なことを言い忘れていましたが、CかC++で実装したいと考えています。

それと、あくまでも同一LAN内のMACアドレスが分かっているリモートホストのIPアドレスが知りたいのであって
明示的にARPリクエストを送りたいわけではありません。したいのはあくまでもIPアドレスを取得することです。

RAWソケットを開いたりする必要こと無く、標準関数あるいは標準機能と数行の記述でIPアドレスを取得できることが希望です。
標準関数を希望するのは、OSに標準的に付属する以外にソフトウェアを取得するのは、権利の関係が面倒なので避けたいからです。

例えば、標準関数でint get_mac_address(struct arpreq *req) のような関数があると理想的です。

279 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 00:35:16 ]
もうとっくに書き終わったかと思ったよw

280 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 00:38:57 ]
>>249
IPアドレスが分かっているLAN内の他のホストのMACアドレスを知る
>>278
MACアドレスが分かっているリモートホストのIPアドレスが知りたい

謎ですなあ。


281 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 01:41:03 ]
int get_mac_address(struct arpreq *req)
じゃなくて
int get_ip_address(struct mac_addr *mac)
だよなぁ


282 名前:249 ◆ZHAPRHY6Ag [2009/02/06(金) 01:57:16 ]
ああそうですね。間違えました。求めるたいのはIPアドレスです。

○例えば、標準関数でint get_ip_address(struct arpreq *req) のような関数があると理想的です。

283 名前:249 ◆ZHAPRHY6Ag [2009/02/06(金) 02:00:25 ]
>>280 >>281
ああちがいました。
求めたいのはMACアドレスです。

ですので、
○例えば、標準関数でint get_mac_address(struct arpreq *req) のような関数があると理想的です。

284 名前:249 ◆ZHAPRHY6Ag [2009/02/06(金) 02:02:28 ]
>>278は間違いなので書きなおします。)

大切なことを言い忘れていましたが、CかC++で実装したいと考えています。

それと、あくまでも同一LAN内のIPアドレスが分かっているリモートホストのMACアドレスが知りたいのであって
明示的にARPリクエストを送りたいわけではありません。したいのはあくまでもMACアドレスを取得することです。

RAWソケットを開いたりする必要こと無く、標準関数あるいは標準機能と数行の記述でMACアドレスを取得できることが希望です。
標準関数を希望するのは、OSに標準的に付属する以外にソフトウェアを取得するのは、権利の関係が面倒なので避けたいからです。

例えば、標準関数でint get_mac_address(struct arpreq *req) のような関数があると理想的です。

285 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 02:03:01 ]
>>278
> 標準関数でint get_mac_address(struct arpreq *req) のような関数があると理想的です

今までの流れでそんなのは無いというのが分からんのか? 今までのレスで十分その
関数を自分で書くだけの情報はあるはずだぞ。 

286 名前:249 ◆ZHAPRHY6Ag [2009/02/06(金) 02:12:48 ]
無いのですね。わかりました。ありがとうございました。

ちなみに、macアドレスを取得する関数はRAWソケットで既に作りました。
マルチプラットフォームでの移植性を考えるとlibpcapを使った方がよさそうでしたけど、移植することもないのでこちらにしました。

標準関数で同機能があればそちらで作り直したかったのですが仕方ありませんね。



287 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 03:21:05 ]
pc11.2ch.net/test/read.cgi/tech/1232455653/
ここでマルチしてんのか

288 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 08:20:08 ]
何がマルチ?

289 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 08:44:00 ]
>>282-283
指摘されているにも関わらず同じ間違いを繰り返してしまうキミは
プログラミングを止めた方がいい。経験上。

290 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 09:15:51 ]
同じじゃないですよ?

291 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 09:17:48 ]
愚者は経験に従うとも言います。

292 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 10:29:01 ]
神だって何度も間違える。

293 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 10:32:30 ]
プログラマは2度間違えない。

294 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 11:11:28 ]
人間は何度でも間違える。

295 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 11:33:57 ]
プログラマは2度間違えない。

296 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 13:21:01 ]
プログラマーって最高ですね。



297 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 15:16:43 ]
おばあちゃんが執事にするならプログラマが一番だって。

298 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 15:22:32 ]
>>284
ここにいる奴に書かせるつもりだなw

299 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 16:19:25 ]
ブロードキャストのパケット監視するとか?

300 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 16:30:03 ]
そうそう/proc/net/arpをずーと監視してればいつかは…
っておい!

301 名前:デフォルトの名無しさん [2009/02/06(金) 21:08:50 ]
過疎

302 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 21:18:49 ]
↑過疎の原因

303 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 22:22:51 ]
蘇我入鹿

304 名前:デフォルトの名無しさん [2009/02/07(土) 01:18:21 ]
金玉かゆい

305 名前:デフォルトの名無しさん [2009/02/07(土) 01:34:59 ]
なるほど
ありがとうございました

306 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 03:05:56 ]
ProxyARP



307 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 03:13:40 ]
ttp://www.geocities.jp/ptrs_sec/ipcat/

308 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 12:17:31 ]
パケットキャプチャについて質問なんです
自身のローカルIPにbindしてプロミスキャスモードに設定するとパケットキャプチャができますが、特定のIPとのパケット通信のみをキャプチャするにはどうすればいいんでしょうか?
全部とって選別よりも、それ以外取得できないようにしたほうが軽いと思うんです
試しにその特定のIPにbindしてプロミスキャスモードに設定しようとしたらエラーが出ました

309 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 12:41:32 ]
ドライバが対応していればその機能を使う。
対応していないなら、そういうドライバを作る。

310 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 14:18:21 ]
複雑だと思うならつかわなきゃいいんじゃねーの?
なんでアホはあるもの全部使わなきゃ気がすまねーの?

311 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 14:23:11 ]
どっちにしろ対象を絞り込むときに選別しなきゃならんわけで

312 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 14:44:47 ]

このスレって俺を含めてド素人しかいない予感w


313 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 15:22:25 ]
同じフィルタリングでも、カーネルモードとユーザランドでは性能が段違い。

314 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 15:22:28 ]
素人さん向け
ttp://www.tef-room.net/tool/PromiScan.html
ttp://www.space-peace.com/ethereal/check/ethereal_check_4.htm

315 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 19:10:19 ]
俺もド素人w

316 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 19:11:12 ]
TCPソケットでconnectすると
接続元アドレスが自動で設定されると思うんだけど
複数IPアドレスがあった場合どうなるの?



317 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 19:33:02 ]
bind

318 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 19:57:20 ]
なるほど
ありがとうございました

319 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 20:10:45 ]
処理するのにbindすればいいのは分かるんだけど
bindしないでconnectした時のアドレス割り当てが
どういったルールになってるのかなって。

320 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 20:35:40 ]
普通はそのインターフェースのプライマリアドレス

321 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 21:24:44 ]
>>320
ちゃんとプライマリとか見てくれるのか
ありがとー


322 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 06:32:35 ]
何でこの板IDないの?

323 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 07:49:43 ]
紳士だからさ


324 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 09:44:13 ]
変態という名の紳士

325 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 22:47:12 ]
地震キタ

326 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 01:07:46 ]
thread_Aにてepoll_wait中に、thread_Bからepoll_ctlで監視対象fdを操作(EPOLL_CTL_DELとか)しても、
即座にthread_Aで止まってるepoll_waitは反映してくれない?

というか、epoll_fdに対しての非同期操作は自分で排他処理しないとダメ?



327 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 10:50:58 ]
>>320
まともなOSならそんなことしない。
インターフェイスへの複数アドレス付与を、付け焼刃で実装したOSならあるかもしれんけど。

>>321
そのホストのルーティングテーブルを参照して、接続先アドレスに到達可能な最小コストのルートを選択して、
接続元とするアドレスが決められる。
インターフェイスAに、10.0.0.1/24と、192.168.0.1/24が振られてて10.0.0.1がプライマリだったとしても、
192.168.0.2に接続するときには、192.168.0.1がsourceとして使われる。


328 名前:デフォルトの名無しさん [2009/02/10(火) 11:25:55 ]
んー
同じセグメントのIPが複数振られてたらどっちが使われる?

329 名前:デフォルトの名無しさん [2009/02/10(火) 11:26:06 ]
プログラム言語はなぜ「言語」と呼ばれるのでしょう?
通常使っている言語とどのような共通点があるか?
またどのような相違点があるか?

という問題を誰か教えてくれませんか?

330 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 11:40:40 ]
>>329
ウィキペれ。

331 名前:デフォルトの名無しさん [2009/02/10(火) 11:43:37 ]
ウィキにのってないポ(;・∀・)

332 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 11:45:36 ]
>>328
>>327に書いてあるでしょ。

333 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 13:56:50 ]
>>332
同じインタフェースに 192.168.0.1/24 と 192.168.0.2/24 が振られているときに
192.168.0.254 に接続したらどうなるか、って話でしょ。>>327には書いてないと思うが。

Linuxの場合、ソースをチラ見しただけだがプライマリを使うようになってる
っぽいな。明確な仕様なのかはよく知らないけど。


334 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 22:47:46 ]
質問です。

UDPソケットでrecvした時に複数のパケットがくっついて読み込まれる事ってありえますか?

335 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 22:53:52 ]
あり得ません。



336 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 23:00:45 ]
>>335
ありがとうございました



337 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 23:01:28 ]
おい、誰の発言かわからん一言を、そんなに簡単に信じちゃうのかよ。

338 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 23:18:03 ]
>>337

339 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 23:27:58 ]
本当はどうなんでしょうか?

340 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 23:32:09 ]
わかりません

341 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 23:36:14 ]
>>339 RFC 読めばええんちゃう?


342 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 00:01:12 ]
普通にありえる。

343 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 00:08:08 ]
OSのバグみたいな、よっぽどのことがない限りないでそ。

344 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 00:08:56 ]
OSと何の関係が

345 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 00:12:19 ]
UDPソケットって何?

346 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 00:17:01 ]
そう来ますか



347 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 00:21:59 ]
343じゃないが、
>>334は「recv」と書いており、これはOSのAPIと理解できる。
UDPのRFCでは、OSのAPIの事は、

User Interface
--------------
A user interface should allow

the creation of new receive ports,

receive operations on the receive ports that return the data octets
and an indication of source port and source address,

and an operation that allows a datagram to be sent, specifying the
data, source and destination ports and addresses to be sent.

しか規定しておらず、複数のパケットを一つにまとめてrecvするOSがあってもよい。
ただし実際そういうAPIを持つOSはいまだかつて見たことがないが。

以上のことはRFCを読んだことがある人間には常識なので、
>>344は読んだことがないのだろう。

上に書いたような意味において、>>334への返答は「あり得ません。」
この返答で正しい。

348 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 00:22:18 ]
IEEE Std 1003.1, 2004

recvのDescriptionから
>For message-based sockets, such as SOCK_DGRAM and SOCK_SEQPACKET,
>the entire message shall be read in a single operation.

349 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 00:27:18 ]
で、このshallはもちろん仕様書に良くある強制のshallなので、
パケットを纏めてしまうと、すくなくとも、POSIXは満たさなくなる。

>shall
>For an implementation that conforms to IEEE Std 1003.1-2001,
>describes a feature or behavior that is mandatory.
>An application can rely on the existence of the feature or behavior.

350 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 00:27:19 ]
最初から書いとけ馬鹿

351 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 01:29:43 ]
みなさん、ありがとうございました

352 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 03:41:46 ]
何に対して礼を言っているのだ

353 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 03:42:37 ]
始めてみようかと思うんですが。
まずなにからすればいいんでしょうか?
ダイアログにWebBrowserコントロールを張り付ければいいんですか?


354 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 03:43:12 ]
>>352
みなさん ではないんでしょうか?

355 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 10:16:31 ]
>>353
スレ違い。

356 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 10:38:13 ]
>>347-349
力抜けよ



357 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 11:20:27 ]
アッー!

358 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 17:23:26 ]
なんだこの流れは…たまげたなぁ

359 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 21:00:32 ]
>>353 はもっと評価されていい。

>始めてみようかと思うんですが。
何をだ!?と思った次の瞬間、

>まずなにからすればいいんでしょうか?
いや知らんがなー!と突っ込まずにはいられない。

360 名前:デフォルトの名無しさん [2009/02/12(木) 01:38:36 ]
神との対話を見た

361 名前:デフォルトの名無しさん [2009/02/12(木) 09:32:53 ]
どこに書けばいいのかわからないので、お手数ですが。
Rubyで書いた、ウェブページとそこのリンク先を取り込むスクリプトを
動かしていたら途中でconnect refusedになって以後つながりません。
"www.linux.org"だったんですけど、他では問題ありません。
図書館でやっても途中で切れました。
某図書館では"www.linux.org"につながらなくなっているかもしれませんゴメンナサイ。
いったいどうゆうことなんでしょうか。
なにが気に入らなかったんでしょうか。
まる二日たちますが、接続拒否は解除されるんでしょうか。

362 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 10:45:59 ]
>>361
一度に多接続すると制限されることはあるね。
どれくらいの期間制限されるかはサイトのポリシーだから一概には言えないね。

363 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 13:50:33 ]
接続拒否されるってどんなスクリプト流したんだよ・・・

364 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 14:25:13 ]
既存サイトを攻撃してはいけません

365 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 15:22:03 ]
一度でも攻撃受けたとこはこの辺厳しい

366 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 15:26:12 ]
なんて迷惑な奴



367 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 19:14:35 ]
お約束ですが
通報しました

368 名前:デフォルトの名無しさん [2009/02/12(木) 20:17:07 ]
www.itmedia.co.jp/news/articles/0902/12/news091.html

369 名前:デフォルトの名無しさん [2009/02/12(木) 20:20:41 ]
IPアドレスを取得まではできたのですが、
取得したIPアドレスを利用して「ping」をうちたいのですが
どうしたらpingをうつプログラム書けますか?
手順を教えてください(ex 関数などを)

370 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 20:29:12 ]
使ってる言語くらい書け。

371 名前:デフォルトの名無しさん [2009/02/12(木) 20:50:31 ]
C言語です。

372 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 22:04:37 ]
ping()

373 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 22:20:59 ]
なんで途中までは出来た、みたいな言い方になってんだ

374 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 22:57:05 ]
>>369 ping したいんだけだたら system("ping ...")


375 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 23:26:29 ]
おまいら、理解力の無い俺に救いの手を・・・

ルータ越しにサーバーとクライアントのプログラムを走らせるとして、
サーバーをSourcePort10000で立ち上げる。
クライアントをSourcePort5000、DestinationPort10000でサーバーに接続する。

この場合、サーバー側のポート10000を空けないと接続できないんだけど、
クライアント側はポートを空けなくても送受信できちゃいます。
なんでなの?(´・ω・`)

376 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 23:29:40 ]
インバウンドしかブロックしないファイアーウォールなんだろ



377 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 23:33:44 ]
>>375
> サーバーをSourcePort10000で立ち上げる。

SourcePort→AcceptPort

378 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 23:37:00 ]
>>376
クライアントは受信もできちゃうんだけど
そゆものなの?(´・ω・`)

>>377
AcceptPortだったか
ありがとうございます。

379 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 23:57:36 ]
>>378
そゆものでしょ

380 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 01:01:06 ]
>>379
そんなのいやだぁぁぁ
ちゃんと理解したいぃぃぃ

なんでポート開いてないのに受信できるの!

( ゚д゚)<誰かぁぁぁぁ

381 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 01:18:21 ]
>>380
ファイアーウォールは外向きのパケットが通るとその発信元ポート、アドレス、
及び通信先ポート、アドレスの4組の情報を「セッション」として覚える。
パケットが帰って来るとそのセッションに当てはめ、一致するセッションがあれば
通してあげる。

382 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 01:32:24 ]
SPI

383 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 01:39:11 ]
>>381
おー、そうなのですか
だからサーバーはポート開けないとダメなのかー
理解できますた。
分かりやすい解説ありがとうございましたヽ(´ー`)ノ

>>382
SPIググってみました。
Stateful Packet Inspection
これか、これなのか!
勉強になりますたヽ(´ー`)ノ


384 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 15:31:17 ]
ヽ(´ー`)ノヽ(´ー`)ノヽ(´ー`)ノヽ(´ー`)ノヽ(´ー`)ノ

385 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 20:54:37 ]
無免許でのネットワークプログラミングは処罰の対象ですよ。

386 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 20:57:16 ]
また大阪か



387 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 21:38:50 ]
ネットワーク従事者の許認可は逓信省電波管理局の管轄です

388 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 10:16:09 ]
免許は逓信大臣が交付じゃね?

389 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 10:28:44 ]
情報処理技術者試験 (ネットワーク) は、橋本龍太郎 通産大臣 (当時) だったな。

390 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 23:35:59 ]
高負荷になるとrecvがECONNRESETを返すようになってしまいます。
なにか心当たりがある方いらっしゃいますか?

391 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 23:38:14 ]
>>390
リモートのホストに聞いてください。

392 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 23:41:18 ]
「おらくたびれただよ、ちょっと休ませてくれかの?」

393 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 00:50:10 ]
>>391

リモートのホストもこちらの制御下なのですが。。


394 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 00:50:39 ]
じゃあ聞けよ。

395 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 00:50:59 ]
どうやって制御してるの?

396 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 01:21:34 ]
>>395
リモートのホストに聞いてください。




397 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 01:23:55 ]
>>396
ちがう。

リモートのホストが>>393の制御下にあるというから、
どうやって制御しているのかを聞いている。

398 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 10:39:33 ]
いろいろ説明不足ですいません。。

クライアントでrecvするとECONNRESETが返ってきます。
サーバ側でアクティブ・クローズしてるのですが、これが原因なんですかね?
処理の流れとしては、以下のような感じになっています。

client    server
       accept
connect
send
       recv
       send
recv     close (クライアントのrecvとサーバのcloseとのタイミングが問題?)
close

よく考えると、サーバ側でsendしても実際は送られてない可能性が高いので、
その後すぐcloseしてしまうのは、問題な気もしますが、
高負荷でないとこの方法でうまく行きます。
(うまく行ってる場合は、たまたまsendがすぐにデータを転送していたということでしょうか?)
サーバ側では、sendしたあと、peerがcloseしたのを確認した後にcloseするのが
いいのでしょうか?
(recvで0が返ってくるまでcloseしないとか)

どなたかご教授ください



399 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 11:00:24 ]
>>398
> (recvで0が返ってくるまでcloseしないとか)

& shutdown

400 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 11:00:38 ]
>>398
最後サーバからなにsendしてるのかしらんけど
双方のパケットの内容はモニターしてチェックしたの?
してないんだったらまずはそっからじゃね?

401 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 11:00:44 ]
>>398
www.kt.rim.or.jp/~ksk/wskfaq-ja/newbie.html#howclose

402 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 11:45:12 ]
>>399,401
ありがとうございます。

1. データ送信を完了する。
2. shutdown()をhowパラメータを 1 に設定して呼び出す。
3. recv()が 0 を返却するまでループする。
4. closesocket()を呼び出す。

1の「送信を完了する」というのは、実際に送信が完了したかの確認ではなく、
send(write)を呼んでstatusがOKかを確認するということでいいんですかね?

とりあえず、試してみます。

403 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 11:57:05 ]
そだね、最後にちゃんとFINの立ったTCPセグメントを送ってやるって事。
recv側はちゃんとFINの立ったTCPセグメントを食ってやるって事。
それでどちら側もちゃんとshutdownできる。
何も難しいことはやってない。


404 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 19:23:21 ]
非同期ソケットでFD_READの通知がきたとき
int ret = recv(socket , buf , 128 , 0 );//whileループは使わない。
ret == -1はあるきがするのですが(ブロッキングなど)
ret == 0はあるのでしょうか?
ブロッキングソケットの場合はrecvでとまっているので ret == 0で切断などであるとは思うのですが。

405 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 02:39:11 ]
マニュアルにないと書いてなければあると思わなければいけない。

406 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 10:35:44 ]
>>361ですが、やっとこ、つながりました。一週間でしたね。
サーバー管理している皆様
セキュリティは、ほどほどにお願いします。



407 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 10:38:02 ]
お前氏んでいいよ

408 名前:デフォルトの名無しさん [2009/02/17(火) 12:21:38 ]
>>407
おまえの母ちゃんよりマシ。

409 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 12:39:25 ]
サーバー管理者から害のあるスクリプトと認定されるものを走らせてアク禁くらって
まるでサーバー管理者側が悪いかのような口のきき方すれば
罵声を浴びるに決まってるだろ

人のことをとやかく言う前にまず自分のスキルを上げろって話さ

410 名前:デフォルトの名無しさん [2009/02/17(火) 14:13:00 ]
>>409
あっそ

411 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 14:58:21 ]
>>410
うん
そういうこと

412 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 15:01:41 ]
まあ普通にサーバ管理者に問い合わせれば済む話だしな。

413 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 18:00:16 ]
一応書いておきますが、406と408、410は、別人です。
わたしは、どのみちシロウトです。

414 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 18:38:28 ]
>>413の付け足しですが。
>>406は、ただ最後にちょっと気の利いたことを書いておこうと
思っただけです。
気に障ったらすみません。
でもネットには、けんかを買いたい人が待ち構えてるんだね。
>>408には、笑った。

415 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 19:40:55 ]
ネットにはよそのサイトをDoSしても開き直っている奴いるしね。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

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

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