- 1 名前:echoちゃん [2008/02/29(金) 21:19:37 ]
- 主にソケットに関しての質疑応答スレッドです。
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辺り 足りなかったら適当に付け足してね 前スレ ネットワークプログラミング相談室 Port20 pc11.2ch.net/test/read.cgi/tech/1186418855/ 関連スレ Java ネットワークプログラミング 【教えて!】 pc11.2ch.net/test/read.cgi/tech/1086238859/
- 175 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 22:18:04 ]
- select失敗した場合ってFD_SETって
どうやって処理すればいいの? 単純にクリアするだけでおk?
- 176 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 04:03:10 ]
- おれはそういうの気にしないために、
fdsetは呼ぶ前にコピーして、そっちをselectに掛けてる。 コピーに変更があったら手動でオリジナルを更新。 何かのサンプルの真似だけど。
- 177 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 04:08:31 ]
- sshでログインしてるとき小さいファイルを向こう側へもっていきたいんだけど
わざわざFTPとか起動するの面倒なときっていい方法ありますか?
- 178 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 04:20:04 ]
- ssh ファイル転送
でggr
- 179 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 05:04:50 ]
- こっち側がwindowsの場合はどうすればよいでしょうか?
たとえばpoderosaを使ってる場合。
- 180 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 11:39:53 ]
- scp
- 181 名前:782 mailto:sage [2008/05/10(土) 21:29:28 ]
- linux版より誘導されてきました
よろしくオナガイシマス linuxでの実装、通信関連の実装の経験の無い未熟ものです www.katto.comm.waseda.ac.jp/~katto/Class/GazoTokuron/code/socket.html linux TCPサーバー側 という部分のコードをコンパイルしているのですが、 accept()システムコールのこの部分で dstSocket = accept(srcSocket, (struct sockaddr *) &dstAddr, &dstAddrSize); error: invalid conversion from \342\200\230int*\342\200\231 to \342\200\231 socklen_t\342\200\231 と怒られています どうしたら怒られなくなりますか コンパイラは gcc-4.1.2-33です
- 182 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 21:31:40 ]
- ↑
名前 782 スマン間違えてシマイマスタ
- 183 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 22:55:30 ]
- プログラムに2バイト文字使ってる?
- 184 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 23:04:14 ]
- >>183
コメント文で2バイト文字を使っていますが ソースコードでは使っていません
- 185 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 23:09:43 ]
- >>181
dstAddrSize が socklen_t ではないっていう型エラーでは? int で宣言してない?
- 186 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 23:50:33 ]
- >>185thx
>>tAddrSize が socklen_t ではないっていう型エラーでは? int で宣言してない? ビンゴでした、socken_t型で宣言したら、エラーが消えました 後、 #include <string.h> #include <unistd.h> を追加し int status; も追加し gcc tcp_serv.c -lsocket とコンパイルすると /usr/bin/ld: cannot find -lsocket collect2: ld はステータス 1 で終了しました となっ てしまいました・・・・・
- 187 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 23:55:06 ]
- -lsocket 不要
- 188 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 00:01:30 ]
- >>187
どうも、そのようですね HPが古いのでコンパイラのバージョンが違うから、こんなにエラーが出たのだと思います g++ tcp_serv.c -o tcp_sev でコンパイルに成功しましたが Waiting for connection ... のままなのですが、これで成功なのでしょうか? クライアントと接続したらこのメッセージは消えるものなのかな・・・・?
- 189 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 00:03:43 ]
- スマソ
gcc tcp_serv.c -o tcp_sev でした
- 190 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 00:23:28 ]
- クライアント側も作成して 127.0.0.1 で接続するのだ。
- 191 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 10:05:45 ]
- >>190
>>181です thx HPのコードを修正して、今しがたserverとclientの、実行ファイルを、同一PC内ですが起動して Wiresharkでパケットが流れているのを確認シマスタ 今書いているPCの他に後2台Windows XPとFedora Core 8が繋がっているので このサーバーで対戦型のオセロゲームでも実装してみようと思います^^ 一応C++使い(MFC)なのでWindows側の実装は難しく無いんだけど linuxのシステムコールやAPIの使い方を知らないのが痛い・・・・orz とりあえずMFCでいう処の、GetKeystate()関数のような、linuxでのキーボード入力のAPIが知りたい
- 192 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 10:29:13 ]
- >>191
select() が使えませんか?
- 193 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 10:43:50 ]
- >>192thx
>>191です なるほど、キー入力の前に接続方法を、再考する必要がありますね 複数のclientが、ぶらさがるサーバの場合、acceptシステムコールや、recvシステムコールをコールして実行してして 一旦、接続行われるとsocketをcloseするまでは、他からのリクエストが受けれなくなりますね・・・・orz そこでselect()システムコールの出番ですね、ちょいと調べてみます。
- 194 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 10:48:30 ]
- ブロックするのがいやならソケットをノンブロックにしても良い。
MFCの糞ソケットクラス使ってるとこの辺の感覚が分からんかも。
- 195 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 00:09:14 ]
- WinSock2を使用して特定用途のTCP/IPサーバをCで作ろうとしていますが、ポート番号の自動割り振りでハマっています。
抜粋したコードは以下のとおりです。 WSADATA wsaData; int len; static SOCKET serverSocket; static struct sockaddr_in addr; if (WSAStartup(MAKEWORD(2, 2), &wsaData)) return -1; serverSocket = socket(AF_INET, SOCK_STREAM, 0); if (serverSocket == INVALID_SOCKET) return -1; memset(&addr, 0, sizeof(addr)); addr.sin_family = AF_INET; addr.sin_addr.S_un.S_addr = INADDR_LOOPBACK; // ★ループバックアドレスを設定 addr.sin_port = htons(0); // ★ポート番号の自動割り振り bind(serverSocket, (struct sockaddr *)&addr, sizeof(addr)); len = sizeof(addr); getsockname(serverSocket, (struct sockaddr *)&addr, &len); // 自動的に割り振られたポート番号を取得 printf("%s\n", addr.sin_port); // 0が出力される listen(serverSocket, 1); getsocknameを行った後でaddr.sin_portに割り振られたポート番号が入っていることを期待するのですが、WinXP+VC7.1では0になっています。 手順がどこか悪いのでしょうか?
- 196 名前:195 mailto:sage [2008/05/16(金) 01:04:52 ]
- >>195
自己レスです。 addr.sin_addr.S_un.S_addr = INADDR_LOOPBACK; // ★ループバックアドレスを設定 ↓ addr.sin_addr.S_un.S_addr = htonl(INADDR_LOOPBACK); ↓もしくは addr.sin_addr.S_un.S_addr = inet_addr("127.0.0.1"); でした。 また、addr.sin_portは使うときにはntols(addr.sin_port)としてやる必要がありました。
- 197 名前:デフォルトの名無しさん [2008/05/25(日) 08:38:08 ]
- こんにちは。
winsock、TCP/IP非同期の、ゲーム用のチャットを作ってます。 クライアントからサーバーにチャット文が届いたらfor文で回して 各クライアントのソケットにsendしているのですが、 (for(i=0,i<MAXCLIENT,i++) send(socket[i])みたいな感じです) この方法だとユーザーが少ないうちはいいのですが、 ユーザー全体数が150人くらいになると重くなります。 少しタイムラグがあって届くみたいな感じです。 どうすれば解決するでしょうか? よろしくお願いします。
- 198 名前:デフォルトの名無しさん [2008/05/25(日) 09:03:57 ]
- サーバーのCPUがマルチコアなら、マルチスレッド使うと早くなるよ
- 199 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 10:19:33 ]
- IPv6のサーバーサイドのプログラムが見つかりやせん
- 200 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 10:21:43 ]
- >>197
UDPにする
- 201 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 10:49:35 ]
- >>197
ノンブロッキングにする
- 202 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 13:25:46 ]
- その問題はノンブロックにして解決するの?
- 203 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 13:28:48 ]
- マルチキャスト
- 204 名前:デフォルトの名無しさん [2008/05/25(日) 14:40:10 ]
- 俺は2000クライアントにマルチキャストするプログラム書いたが
そんなに気になるラグはなかったぞ。多くても150msくらいの遅延しかない。 プログラム的に問題あるんじゃない?TCPでもsendにそんなに時間かかるって事はないと思うけど・・・ 送信するデータのサイズにもよるけどね。
- 205 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 14:51:07 ]
- 単純な foreach (clients) { client->send(data); } のとき
一匹でも激遅クライアントがいると そこでsendが糞詰まりを起こして全体が遅くなる
- 206 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 15:06:04 ]
- え、send()って、相手に到着しないと抜けないの?
- 207 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 15:56:12 ]
- tcp送信バッファが満杯になればblockする
- 208 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 20:13:36 ]
- なんでn回ユニキャストする発想になるのか。
- 209 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 20:29:59 ]
- そりゃmulticast/boardcastを知らないからだろjk
- 210 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 23:18:00 ]
- boardcastは俺も知らない。
- 211 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 00:33:39 ]
- TCPはmulticastできないみたいです。。。
for文じゃなくてマルチスレッドにするといいのかな? どうも同じような気がするのですが、一応やってみます。
- 212 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 02:11:21 ]
- くだんのスレがアフォなのはどうでもいいが、150ms遅延「しかない」
とかもう救いようがないな。
- 213 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 03:31:04 ]
- キューを実装して非同期sendすればプログラムが重くなるのは解消される
- 214 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 10:34:34 ]
- あれ、>>197には
>TCP/IP非同期 って書いてあるやん 150人に一斉同報するのってフツーに重いんじゃないの
- 215 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 10:38:07 ]
- ircdってどんな実装になってるんだろ
- 216 名前:デフォルトの名無しさん [2008/05/27(火) 02:32:22 ]
- >>212
環境を書いてないからなんとも言えんがな。
- 217 名前:デフォルトの名無しさん [2008/05/27(火) 02:57:49 ]
- 質問者が馬鹿だったのは、二チャンネルで質問したことだろな。
- 218 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 09:04:41 ]
- 197じゃないけど、似たようなプログラムでクライアントにダイヤルアップレベルの細い回線が混ざってて、
かつ数百キロバイトのデータが必要になる場合があるときは ・単一スレッドから非ブロッキングモードで送信 ・接続毎にキューを持ったスレッドを作成してブロッキングモードで送信 どちらがいいいのでしょうか? 接続クライアント数は10程度です。
- 219 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 09:33:28 ]
- 10程度だったらコードの見易さからいってスレッド作るのはアリかな
そうだとしてもブロッキングにはしないなあ、中断しにくいから
- 220 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 19:59:52 ]
- ネットワークとは直接関係ないのですが。。。
ネットゲームの延長の質問ということでご了承ください>< 直接アプリのアイコンをダブルクリックで起動じゃなくって、 ハンゲームとかのHPみたいにゲームスタートみたいなボタン(リンク)を クリックするとアプリが起動するのありますよね。 HPからユーザー側のアプリが起動できちゃうと悪さができちゃうからムリ みたいな事も聞いたことあるんだけど。。。 ああいうのってどうやってるのでしょうか?
- 221 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 21:26:27 ]
- >>220
ためしに登録してみたが・・・ ActiveXコントロールのインストールが必要ですって言われたぞ
- 222 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 21:27:07 ]
- 署名付きActiveXだとおもうが。
#厳密には署名がなくても不可能ではないけど、 #そのセキュリティを緩めるのは致命的な筈
- 223 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 21:27:45 ]
- ActiveXコントロールってなんですか?
- 224 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 21:28:47 ]
- >>223
ググレカス
- 225 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 21:34:28 ]
- 署名付きアプレットを認証局から証明書を発行してもらう必要があるみたいですね。
多分有料ですよね。 でも大体わかりました、ありがとうございます!
- 226 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 21:36:59 ]
- ハウス ググレカスー
- 227 名前:デフォルトの名無しさん [2008/05/29(木) 20:55:00 ]
- おいしそうなおやつがあったので、置いておきますね
東京藝術大学音楽学部 羽目鳥祭り開催中 school7.2ch.net/test/read.cgi/musicology/1211727581/
- 228 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 05:21:46 ]
- ActiveXコントロールは
ユーザーがインストールを許可する事でインストールされる。 インストールしなければ動かない。 実体はDLLかEXEなので起動されれば何でもできてしまう。 よくスパイウェアとして使われる。 よほどの馬鹿でなければ 信用あるサイト以外からはインストールしないので 作っても無駄
- 229 名前:デフォルトの名無しさん [2008/05/30(金) 05:27:24 ]
- ユーザは馬鹿だぜ?
- 230 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 08:14:56 ]
- ほいほいインストールすると思う。
署名のないActiveXを使ってる企業などのサイトで「警告が表示されますがOKを押してください」なんてわざわざ解説してたりするし。 「インストール手順を増やすうざいダイアログ」ぐらいにしか思ってないんじゃない。 あれを見るにつけ、日本って終わってると思う。
- 231 名前:デフォルトの名無しさん [2008/05/30(金) 19:26:57 ]
- 作り手もかなりあほだぜ
- 232 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 21:11:41 ]
- Vistaでは署名無しAXは起動できないんじゃなかったっけ
- 233 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 20:30:02 ]
- 絶対ほいほいインストールする
- 234 名前:デフォルトの名無しさん [2008/05/31(土) 23:41:10 ]
- とあるサイトからデータを自作したプログラムでダウンロードしているのですが、
ダウンロードに成功したり失敗したり 2分の1の確率で動いているのですが、 ダウンロードに成功しないのは なにが原因でしょうか?
- 235 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 23:49:58 ]
- 自作したプログラムなら、原因を調べられるだろう?
どこで何のエラーが返ってきてるとか
- 236 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 23:55:45 ]
- 翻訳:エスパー募集中
- 237 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 00:14:20 ]
- HRESULT h;
h = URLDownloadToFile( 0, http, file, 0, 0 ); switch(h){ case S_OK: printf( " success.\n" ); break; case E_OUTOFMEMORY: printf( " E_OUTOFMEMORY\n" ); break; case INET_E_DOWNLOAD_FAILURE: printf( " INET_E_DOWNLOAD_FAILURE\n" ); break; default: printf( " error?\n" ); break; } 上のようにしてやっているのですが、 h が default の値しか返さなくて何が原因なのかがわからないのです。
- 238 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 00:20:46 ]
- 値を表示してみるという思いつきができないのか
なんというゆとり
- 239 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 00:24:56 ]
- defaultを使わないでもっと絞ればいいだろ
- 240 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 00:31:06 ]
- >>238
戻り値は -2146697510 です 意味わかるんですか?
- 241 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 00:32:33 ]
- >>239
リファレンスには S_OK E_OUTOFMEMORY INET_E_DOWNLOAD_FAILURE の3つしか 特に戻り値として明記されていませんでしたので これ以外の戻り値は わかりません。
- 242 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 00:40:10 ]
- 仕様書か実装のバグだね
MSに抗議しないと
- 243 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 00:40:42 ]
- リファレンス外の戻り値を返すとかどんだけ糞なライブラリorリファレンスだよ
- 244 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 01:10:01 ]
- -2146697510 = S_OK + E_OUTOFMEMORY + INET_E_DOWNLOAD_FAILURE
- 245 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 01:12:17 ]
- >>244
おまえすげえなwww 3つの戻り値の和を返すというのはいったいどういうことを言いたいんだろうかこの関数は
- 246 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 01:20:04 ]
- >>244
1245206じゃハゲ テキトーなこと抜かしてるんじゃねーよボケ 死ね工作員
- 247 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 01:40:25 ]
- 一体何の工作だ
- 248 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 01:52:00 ]
- FACILITYの意味からして足すのはありえんと思うんだが
- 249 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 01:54:15 ]
- -2146697510 = S_OK | E_OUTOFMEMORY | INET_E_DOWNLOAD_FAILURE
- 250 名前:デフォルトの名無しさん [2008/06/01(日) 01:55:03 ]
- >>248
ビット和だろ常考
- 251 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 01:59:40 ]
- -2146697510を16進数に直すと0x800bfeda
8 は失敗をあらわす。 b は FACILITY_CERT で、電子証明書関連のエラーだとわかる。 feda は不明。 httpsで繋ごうとして何かがまずかったんだなとはわかるね。
- 252 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 02:09:45 ]
- winerror.hに詳しくなるスレはここですか
- 253 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 04:57:28 ]
- スタック破壊してんじゃネーノ
- 254 名前:デフォルトの名無しさん [2008/06/01(日) 05:07:10 ]
- ネットワーク接続を切る、接続するAPIってあるんでしょうか?
言語は C/C++ Windowsでお願いします
- 255 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 05:08:39 ]
- あるよ。
- 256 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 05:19:49 ]
- >>255
何でしょうか?
- 257 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 05:23:23 ]
- Winsock
- 258 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 05:49:25 ]
- すいません 間違えました
ネットワークでなく インターネットの接続です
- 259 名前:デフォルトの名無しさん [2008/06/01(日) 05:50:53 ]
- どう違うんだ
- 260 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 05:53:14 ]
- 稀にIPじゃない場合もあるか否か
- 261 名前:デフォルトの名無しさん [2008/06/01(日) 05:56:17 ]
- IPじゃないってドメインのことか?
ドメインならgethostbynameでIPに変換可能 あとは一緒
- 262 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 05:56:57 ]
- ネットワーク接続 WNetConnectionDialog関数を使ったら
ttp://sakuratan.ddo.jp/imgboard/img-box/img20080601055455.jpg のようなダイアログがでたのですが、これではないやつで インターネット接続関連のダイアログがでてくると幸いです
- 263 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 06:02:35 ]
- >>261
Internet Protocolを使ってないコンピュータネットワークもあるってこと。
- 264 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 06:30:21 ]
- connect() 関数じゃないですよ?
- 265 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 06:51:53 ]
- 物理的にネットワークアダプタを抜いた状態と同じ環境にしたいってことです
- 266 名前:デフォルトの名無しさん [2008/06/01(日) 07:41:40 ]
- >>263
あるわけないだろ。 ばか?
- 267 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 07:45:56 ]
- >>266
うせろキチガイ
- 268 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 07:47:43 ]
- >>266 が無知なのは分かったw
- 269 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 08:31:21 ]
- >>268が無知すぎる件
ある意味犯罪
- 270 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 09:43:55 ]
- >>269
アナタを・・・ telnetです・・・
- 271 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 15:34:01 ]
- >>266,269
AppleTalkとかIPXは?
- 272 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 15:34:40 ]
- >>265
Win32APIでネットワークアダプタを無効にするとか やり方知らんが多分できるとオモ
- 273 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 15:48:13 ]
- WindowsでSockRAW取れないのですが
どうしてですか?XP SP2です
- 274 名前:デフォルトの名無しさん [2008/06/01(日) 16:05:42 ]
- 覗くなということだ
- 275 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 18:13:05 ]
- >273
ググればすぐわかる。
|

|