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


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

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



1 名前:デフォルトの名無しさん mailto:sage [2007/02/09(金) 23:04:56 ]
主にソケットに関しての質疑応答スレッドです。

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

前スレ
ネットワークプログラミング相談室 Port18
pc10.2ch.net/test/read.cgi/tech/1159692799/

85 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 17:59:47 ]
>>75
なにげに、この方法よいのかも?

86 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 18:03:11 ]
負荷おおすぎねえ?

87 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 18:51:57 ]
>>86
確かに大きそう。まあSSL通信に比べれば
そんなでも、ないかもしれないけど。

88 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 21:53:00 ]
アホか
手順4見てみろ

89 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 23:56:01 ]
DDoSされたら終わりだな

90 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 00:05:22 ]
ハッシュ値持たせるならサーバ側はブロック単位で最初から持っとけよ
クライアント側で計算させて一致しないのだけやり直しが普通の発想だろ

91 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 03:00:14 ]
>>88
w

>>89-90
同意

92 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 05:51:09 ]
同じファイルかどうかなんてクライアントがETagでも覚えとけよそんくらい。

93 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 11:28:22 ]
ブロック毎に32bitCRC値を持たせるとしたら、
ブロックの長さはどれぐらいが適当でしょうか。
仮に64kByte毎だと1MB辺り64Byteで済みますが、
これは冗長でしょうか。



94 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 12:06:46 ]
残りの長さの全部のハッシュを求めないで、
サーバとクライアントでそれぞれ2,3箇所ピックアップして、
ハッシュ求めれば十分じゃん。
あとダウンロードは、なんも処理しないでいいんだし。

ただ、これをいうと、ハッシュじゃなくてもいいんだよな。w
どれだけ'同じファイルであるかの確かさ'を求めるかだ。
毎回なんか処理しながらダウンロードって、しないに越したことは無いでしょ。
突っ込みの嵐の予感。

95 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 13:37:08 ]
>>94
> ただ、これをいうと、ハッシュじゃなくてもいいんだよな。w

>>76

96 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 00:53:50 ]
>>93
ブロック長が長くなるほど衝突が増える。
ブロック長が長くなるほど再送に無駄が増える。

後は自分で考えて。

>>94
普通、まずサイズや最終更新時間を調べるでしょ。
そんなわけでFTPだってSIZEとMDTMコマンドがある。


97 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 01:05:38 ]
まあそれも>>83だけど

98 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 00:11:12 ]
udpでメッセージを交換する簡単なプログラムを作っているのですが、
可変長文字列で詰まってしまいました。

struct message{
int size;
char buf[1];
}

struct message *p;

p = (struct message *)malloc( sizeof(struct message) + strlen(input) );

送信したい文字列をinputに格納して、その長さに合わせてこのmessage構造体をmallocしているのですが、
受信側ではなぜか文字列が途中で途切れてしまいます。
可変長を実装するにはこのやり方は間違っているのでしょうか?

99 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 00:31:48 ]
MTUよりでかくなってないか?

100 名前:98 mailto:sage [2007/03/13(火) 01:03:07 ]
MTUが1500で、送信サイズが20byte程度でしたので、MTUを越えてはいないと思います。
今色々デバッグしてみたところ、sendtoで送信できているサイズが、sizeof(struct message)と同じ値でした。きちんとmallocはしているはずなのですが…

101 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 01:41:23 ]
送信側のsendのところと受信側のrecvのところのコードを晒せ

102 名前:98 mailto:sage [2007/03/13(火) 02:16:30 ]
sendとrecvのサイズを設定する引数が間違っていました。

send:
sendto( s,p,sizeof(struct message) + strlen(input),0,(struct sockaddr *)pfrom,fromlen );

recv:
recvfrom(s,p,sizeof(p)+20,0,(struct sockaddr *)pfrom,fromlen);

といった感じに改造したところ、短いメッセージならきちんと受信できるようになりました。ただ20という数字が適当なので、この部分をきちんとinputの長さに合わせたいです。

103 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 09:24:59 ]
sizeof(p)がstruct message *pなんだろうなぁ
C言語のテキスト見直ししる。



104 名前:98 mailto:sage [2007/03/13(火) 11:23:32 ]
受信側をsizeof(struct message *p)としましたが、やはり適当な値を受信サイズに加算しないと駄目なようなので、この方法でやろうと思います。
ありがとうございました。

105 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 12:46:23 ]
>>103
> sizeof(p)がstruct message *pなんだろうなぁ

これは>>98のミス原因をつぶやいただけだろ。
Cの勉強し直してくれ。Cが分からないから>>103を誤読する。

106 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 12:49:16 ]
それからC99から、
struct message{
int size;
char buf[0];
}
と定義できるぞ。
これで出来ることは増えないが、サイズ計算が単純になる。
seclan.dll.jp/c99d/c99d04.htm#dt19990726

107 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 14:00:49 ]
>>103
recvfrom(s,p,sizeof(p)+20,0,(struct sockaddr *)pfrom,fromlen);
で、pの宣言がstruct message *pなら
sizeof(p)+20=24ぐらいになるってことでしょ?
paddingとか32bit環境とかは置いといてね。

108 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 20:20:03 ]
> これで出来ることは増えないが、
C99以前は配列の最終要素を踏み越えるのは厳密には未定義じゃなかったっけ

109 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 20:57:03 ]
UDPはパケット境界保持されるんだから小細工しなくていいんでない?


110 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 21:00:07 ]
UPNPのnat traversalで空けたポートに
"本当に"外部ネットワークからアクセスできるか確かめる方法って
外部にそれようのサービス立てておいてそれを叩くしかないよね?

111 名前:デフォルトの名無しさん [2007/03/13(火) 21:03:34 ]
>>110
携帯電話からアクセスしたら?

112 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 21:05:53 ]
すまん言い方が悪かったかな
ポートを空けたプロセス自身から確かめる方法

113 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 19:50:51 ]
ちょっと基本的な事ですいません。
[サーバ(accept側)]−[クライアント(connect側)]
こんな感じで繋がっている時、
1秒間にサーバからsendできるデータの限界量=上り帯域
1秒間にクライアントからsendできるデータの限界量=下り帯域
という概念で合ってるでしょうか。



114 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 23:51:36 ]
sendがsocket apiのsendのことをさしているなら違う。
sendはtcpの送信バッファにコピーするだけ。

115 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 02:01:58 ]
udpだったらクライアントからはsendできたように見えても
どんどん捨ててるだけということもあり得るし

116 名前:113 mailto:sage [2007/03/15(木) 20:53:07 ]
では、
1秒間にサーバ/クライアントから送信できるデータの限界量=上り/下り帯域(/sec) 
という事でしょうか?

117 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 21:07:50 ]
ごはんつぶは糊として使えるが
糊=ごはんつぶというわけではない

118 名前:58 mailto:sage [2007/03/16(金) 00:04:01 ]
>>60
さんざん遅れて申し訳ありませんが、ありがとうございます。
しばらく仕事に忙殺されていて死にかけていました。

119 名前:113 mailto:sage [2007/03/17(土) 02:47:41 ]
なんとなく自己解決しました。

120 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 00:54:02 ]
ソケット通信でどっかのHPのCGIに引数を渡すときはどういう応答すればいいんですか?
HTMLで言うところのformからPOSTでCGIを呼ぶってことです。

121 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 01:04:51 ]
RFC 2616を読む

122 名前:デフォルトの名無しさん [2007/03/18(日) 09:58:27 ]
ここってライブラリの質問もあり?

123 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 11:05:24 ]
前スレでOpenSSLの話はダメという結論になった



124 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 11:14:56 ]
じゃあ、このスレ限定でおk

125 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 14:22:26 ]
>121
まとめてください。

126 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 15:21:00 ]
おらさっさとまとめろやクズ。

127 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 17:17:47 ]
みなさん。スルーで。

128 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 17:29:29 ]
急ぎませんので、今日中にまとめておいてください。それでは。

129 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 21:00:24 ]
わろたw

130 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 16:02:54 ]
windowsとlinuxの間で、C/C++でソケットプログラミングしてます。
チャットソフトです。

・print、strcpyとか気を付けるのと、ほかになにかあるでしょうか。
・もしも、WEBサイトに文字列を表示させる場合は、メタキャラクタのエスケープ処理ですよね。
検索したところ、これぐらいかと思ったのですが、まだまだたくさんあるでしょうか。

アドバイスよろしくお願いします。

131 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 20:13:39 ]
>>130
ttp://www.freebsd.org/ja/security/#spg
ここが参考になるよ

132 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 21:57:22 ]
>>131
ありがとうございます。
参考にさせていただきます。

133 名前:デフォルトの名無しさん mailto:sage [2007/03/21(水) 04:01:45 ]
便乗質問させてください。recv関数は受信される最大サイズが
決まってると思いますが、プログラミングしてて
長さがわからなくなるときって、どんなときですか。



134 名前:デフォルトの名無しさん mailto:sage [2007/03/21(水) 04:41:28 ]
日本語でおk

135 名前:デフォルトの名無しさん mailto:sage [2007/03/21(水) 04:43:10 ]
つかマジで機械翻訳なのかな
TCPなら繰り返し受信すればいい
UDPだったら1つのパケットに入りきらないメッセージが来ること自体あり得ない

136 名前:デフォルトの名無しさん mailto:sage [2007/03/21(水) 16:02:47 ]
>>133
長さがわからなくなるときは、無い
長さは必ず返却される

137 名前:デフォルトの名無しさん mailto:sage [2007/03/21(水) 17:24:33 ]
>>136
レスありがとうございます。
ネットワークプログラミングでは、バッファ・オーバー・フローは
気にしなくても大丈夫なんでしょうか。

気を付けて使ってるのかわからないですが、猫でもわかるとか、
他の本でもstrcpy使用してみるみたいです。
strncpy、snprintfは全然見ないような。

138 名前:デフォルトの名無しさん mailto:sage [2007/03/21(水) 17:38:07 ]
返された長さにもとづいてやればオーバーフローしないよ
長さを無視してるとダメだけど、
それはネットワークに限った話じゃないし

139 名前:デフォルトの名無しさん mailto:sage [2007/03/21(水) 18:01:20 ]
>>137
バッファオーバーフローは無論あってはならない。特にネットワークプログラミング
においては重大なセキュリティホールに繋がりかねないので、強く意識すべき。

C++を使えるのなら、Cなんぞ使わずにstringやvector<>を使うことを薦める。

140 名前:デフォルトの名無しさん mailto:sage [2007/03/21(水) 18:02:44 ]
ていうかさ、そんな事を質問している時点で
基本を何も分かってないって事だろ。

まず系統的に解説してある入門書読めよ。

141 名前:デフォルトの名無しさん mailto:sage [2007/03/21(水) 20:56:11 ]
サンプルソースうpして聞けばいいよ

142 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 02:26:15 ]
>>138-141
レスありがとうございます。
>それはネットワークに限った話じゃないし
>C++を使えるのなら、Cなんぞ使わずにstringやvector<>を使うことを薦める。
とても勉強になりました。ありがとうございました。

143 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 01:22:19 ]
webアプリはクライアントがどのプログラムからhttpリクエストを出してるかということを
判別できるんですか?
ブラウザ(IE)に偽装した形でhttpリクエストを出したいんです。



144 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 01:34:49 ]
>>143
スレ違い
pc11.2ch.net/php/

145 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 11:49:08 ]
>>143
ajax使うしかないな
だが単純に普通にIE使ってたら最初の一発目は偽装不能

146 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 09:16:33 ]
ひとつのコネクションでデータの送信と待ちうけを行うには
ポーリングするのが一般的でしょうか?

147 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 09:58:48 ]
俗に言うselect系

148 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 10:02:27 ]
selectもブロックしてしまいますよね?


149 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 10:06:18 ]
>>148
ブロックさせたいんじゃねーのかよ

150 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 10:17:50 ]
ブロックしちゃうと任意のタイミングで送信ができないと
思うわけです。

151 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 10:52:30 ]
selectはポーリングにも使えるが?

152 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 11:00:53 ]
送信可能な時はブロックしないで戻るしね。

153 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 11:09:14 ]
selectの改良版はpollって名前だしね。



154 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 11:13:41 ]
ちょっと詳しく教えてくれないか?

155 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 12:20:08 ]
>>150
その任意のタイミング発生装置(ttyとかXのイベントとか)も
selectに含ませてブロックさせる。

156 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 12:27:59 ]
>>155
なるほど

あなた、もしかして天才?

157 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 12:48:32 ]
何、通りすがりのサラリーマンさ。 単身赴任のね

158 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 12:58:46 ]
>>157
すみません。本当はよく意味がわかってません。

しかーし、外部からselectを抜けさせればよいということですよね!

159 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 13:00:22 ]
こんな感じですよね?
www.geekpage.jp/programming/linux-network/select-eintr.php


160 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 21:28:56 ]
スレッド1:selectで受信待ち
スレッド2:問答無用でsend

161 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 21:39:18 ]
>>160
( ・∀・)イイ!!

162 名前:デフォルトの名無しさん mailto:sage [2007/03/29(木) 04:21:50 ]
1つのコネクションを複数のスレッドから使えるんだっけ?

163 名前:デフォルトの名無しさん mailto:sage [2007/03/29(木) 04:25:43 ]
>>162
今解らないことだらけでしょ?>プログラム作ってて
ソケットとかスレッドとか。
もしそうなら本買って勉強したほうがいいと思うよ



164 名前:デフォルトの名無しさん mailto:sage [2007/03/29(木) 04:43:26 ]
>>146とは別人なんだけど。
たとえばWinsockはスレッドセーフであることは保証されていない
www.kt.rim.or.jp/~ksk/wskfaq-ja/intermediate.html

165 名前:デフォルトの名無しさん [2007/03/29(木) 12:01:30 ]
女(socket)は一人、男(thread)が複数。

同時に複数の男が出し入れすることはできない。
一人がIOしているときは、他の奴が待つように作らないとバグるよ。

166 名前:デフォルトの名無しさん mailto:sage [2007/03/29(木) 12:21:35 ]
>>165
その説明だと、1 socketに対し、3 thread同時にI/Oできるように読めるが?
また、thread同士でもI/Oできることになるので、適当な例えではない。

167 名前:デフォルトの名無しさん mailto:sage [2007/03/29(木) 12:29:17 ]
>>166
(゚Д゚)ハァ?

168 名前:デフォルトの名無しさん [2007/03/29(木) 12:33:50 ]
3Pはできたとしてもそれでも「同時に」IOできるのは一人の男と言いたかった。
(もう一つ穴があるだろ、はなしね)

socket自体はスレッドセーフではないが、スレッド間で同時にIOを
行わないように制御すれば、複数スレッドで単一socketを使うことは可能じゃね?

しかし、それでもデータ内容がごちゃごちゃになる可能性があったりするし、
あまり良い方法とは思わないが。

誰の子供かわかんな〜い、になっちゃう。

169 名前:165 mailto:sage [2007/03/29(木) 12:37:39 ]
あ、165=168 ね

170 名前:デフォルトの名無しさん mailto:sage [2007/03/29(木) 12:54:30 ]
>>168
別の板でやれ

171 名前:デフォルトの名無しさん mailto:sage [2007/03/31(土) 00:26:08 ]
さて、そろそろパケットをティッシュに送信してから寝るかな

172 名前:デフォルトの名無しさん mailto:sage [2007/03/31(土) 05:45:21 ]
winsockでTCP通信するプログラムを作ってますが、クライアントがconnectする時に
接続先のIPアドレスに自分のマシンのプライベートアドレス指定しているときは、正常に動作しますが
グローバルアドレスを指定すると、connectからエラーコード10061 (接続が拒否された)が返ってきます
Windowsファイヤウォールによるブロックは、されてない様子です

ネットワーク初心者ですが、どういうケースが考えられるでしょうか
よろしくお願いします

173 名前:172 mailto:sage [2007/03/31(土) 08:18:29 ]
自分自身のグローバルIPには接続できないって事ですかね
テストを行うには、リモートマシンを使わないといけないんでしょうか



174 名前:デフォルトの名無しさん mailto:sage [2007/03/31(土) 08:43:37 ]
ルータやファームのバージョンによるのでは
うちはファームのバージョンあげたらできるようになった

175 名前:172 mailto:sage [2007/03/31(土) 10:20:27 ]
ポート4123番を開放して、自分のマシンでサーバを起動して、外部からクライアントで接続を試してもらったんですが
同じくconnectでエラーコード10061が発生します。何がいけないんでしょうか

176 名前:デフォルトの名無しさん mailto:sage [2007/03/31(土) 10:55:02 ]
サーバって何?自作?
もしそうならbind呼び出しのところのコードを晒せ

177 名前:デフォルトの名無しさん mailto:sage [2007/03/31(土) 11:21:02 ]
>>172 NATとかIPマスカレードの問題では。あるいはルータに
折り返し機能がないか(>>175はこの問題と関係ないが)。
どっちにしても、ルータの設定の見直しが必要だと思います。

178 名前:172 mailto:sage [2007/03/31(土) 11:30:34 ]
ポートを開放できてないのが原因でした。ありがとうございました!

179 名前:デフォルトの名無しさん mailto:sage [2007/03/31(土) 14:12:13 ]
穴という穴に漏れの精子を流し込んだら、鯖が発狂しちゃった。
壊しちゃってごめん。

180 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 07:11:29 ]
コマンドラインだけのチャットプログラムを作って、
ネットワーク勉強したところです。

もっと、複雑な通信規則のアプリを作りたいとき、
なんの命令待ちか状態の推移の管理の仕方で、
わかりやすいサンプルプログラムや本などないでしょうか。
本屋に行ってもいい本みつからないです。

・データを送信したので、OKを待っている状態
・データを待ってる状態
どんどん何を待ってるか、変わってくると思うんです。
よろしくお願いします。

181 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 09:50:10 ]
linuxからWINDOWS2000に、20000バイトの文字列送信したら
WINDOWSの方で、2回に分けてrecv()が呼ばれているようでした。

■linux
send(soc,buf,strlen(buf)); //20000バイトの文字列を送信
WINDOWSのグローバルIPアドレスを指定して送信。
ブロッキングモード

■WINDOWS
while(1){
recv(soc,buf,sizeof());
}
ブロッキングモード
//2回に分けてrecvが呼ばれました。16000文字と4000文字

サイズが大きいときは、分けてrecv関数が呼ばれることを
想定してプログラミングしないとだめでしょうか。
16000バイトというのは、環境関係なく決まった数字ですか?

182 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 11:40:49 ]
FAQよむことをおすすめする。
TCPならどこで切られるか、どこでくっつくかは予想できない。
UDPで2回に分かれたというなら、バグじゃね?

183 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 23:11:47 ]
UDPの場合1回で送信し切れなかったら単純に捨てられる



184 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 23:35:54 ]
>>182
>>183
レスありがとうございます。
今回はTCPでした。UDPはそうでしたか。ふむふむ。

図書館で調べたら、パケット一個分だっり8000ぐらいのときもあったり
ばらばらなんですね。
ブロッキング、ノンブロッキング、ローカルホスト、リモートホスト
でも違うみたいです。

勉強になりました。
ありがとうございました。

185 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 23:46:37 ]
>>184
というか、TCPはストリームベースのプロトコルだから、そういうことは
一切仮定してはならない。
TCPは、実際にはいくつかのIPパケットとして送られるデータを
区切りの無いただのバイト列のように見せる。

TCPで「メッセージの区切り」のようなものが欲しければ、自分で(アプリ層で)
仕掛けを作りこまなければダメだ。






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

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

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