ネットワークプログラミング相談室 Port5
■ このスレッドは過去ログ倉庫に格納されています
0001Unknown
NGNGProgramming UNIX Socket FAQ (日本語訳)
http://www.kt.rim.or.jp/~ksk/sock-faq/indexj.html
Winsock Programmer's FAQ
http://tangentsoft.net/wskfaq/
過去スレ:
ネットワークプログラミング相談室
http://pc.2ch.net/tech/kako/970/970344582.html
ネットワークプログラミング相談室 Port2
http://pc.2ch.net/tech/kako/1006/10062/1006258198.html
ネットワークプログラミング相談室 Port3
http://pc3.2ch.net/test/read.cgi/tech/1023359282/
ネットワークプログラミング相談室 Port4
http://pc3.2ch.net/test/read.cgi/tech/1034236536/
0232デフォルトの名無しさん
NGNGどうすればよいのでしょうか?
0233デフォルトの名無しさん
NGNG! i iノノリ)) 〉
i l l.´ヮ`ノリ <先生!こんなのがありました!
l く/_只ヽ
| ̄ ̄ ̄ ̄ ̄|
http://muryou.gasuki.com/saitama/
0234デフォルトの名無しさん
NGNG盗み見るも何も、ポートあけて受信しろ
0235デフォルトの名無しさん
NGNG本が出てるのはわかった。で、あんたの感想・使用感は?ぷりーず。
0236デフォルトの名無しさん
NGNG「2ちゃんねるはボランティアの削除人が書き込みをチェックして、
好ましくない書き込みを一所懸命削除している、
ということになっているが、あれはウソ。
削除人には給料が支払われ、その給料の原資となっているのが、
まずいことを書き込まれた企業が削除要求とともに渡す裏金。
これはまさに、総会屋の構図そのものだ。
これまで裁判になっているのは金額で折り合えなかったり、
裏金を出さない強い態度の企業とだけだ」
0237デフォルトの名無しさん
NGNGReadFileできるってことは
_open_osfhandleでいけるんじゃないの
0239デフォルトの名無しさん
NGNG良く出来ているけど、うざい。
結局自分でclassを書いた。かなり参考になった。いじょ
0240山崎渉
NGNG0241デフォルトの名無しさん
NGNG現在
/*-------------------------------include-------------------------------*/
#include <stdio.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
/*-------------------------------define--------------------------------*/
#define PORT 8765
main()
{
/*------------------------------変数---------------------------------*/
int fd;//ファイルディスクリプタ
int ret;//readの返し値
struct sockaddr_in addr;//サーバー構造体
char buf[1024];
fd_set r_fd;
0242241
NGNGbzero((char *)&addr, sizeof(addr));
addr.sin_family = AF_INET;
addr.sin_port = htons(PORT);
addr.sin_addr.s_addr = inet_addr("IPアドレス");
/*----------------------------接続-----------------------------------*/
fd = socket(AF_INET, SOCK_STREAM, 0);
connect(fd, (struct sockaddr *)&addr, sizeof(addr));
0243241
NGNGFD_ZERO(&r_fd);//r_fdを初期化
while (1) { //メインループ
FD_SET(0, &r_fd);//キーボードをr_fdに追加
FD_SET(fd, &r_fd);//fdをr_fdに追加
select(fd+1, &r_fd, NULL, NULL, NULL);
/*-------------------------キーボードからの読み込み-----------------*/
if(FD_ISSET(0, &r_fd)){
memset(buf, 0, sizeof(buf));
ret = read(0, buf, 100);
write(fd, buf, ret);
}
0244241
NGNGif(FD_ISSET(fd, &r_fd)){
memset(buf, 0, sizeof(buf));
ret = read(fd, buf, 100);
if(ret == 0){
break;
}
/* コンソールへの出力 */
write(1, buf, ret);
}
}
close(fd);
exit(0);
}
こんなかんじのプログラムを組んでみたのですが、ここからゲーム部分に移るべく現在拡張子が.cなのですが
.cppに変えたいのですが、そうするとinet_addr();read();write();close();でコンパイルエラーが
出てきてしまうのですが、代わりになるような関数ってありますか?それとも大幅に変更を変える必要
が出てくるのでしょうか?
0245デフォルトの名無しさん
NGNGman 2 write もしくは man -s 2 write
などとやって、その関数に必要なヘッダを include してるか、
確認してみては? たぶん、#include <unistd.h> あたり...
てーか、なんか、それ以前に根本的なスキル上の問題を感じるんだが...
0246241
NGNGサンクス。無事コンパイル通りました。
スキルあったら一々聞いたりしてないから触れないで
0247デフォルトの名無しさん
NGNGちょうど、上の奴みたいのはコンパイルできるのですが、
諸事情で、bccでコンパイルする必要があるのですが、
可能ですか?
0248247
NGNGbccのincludeフォルダに読み込ませればできるのでは、
と勝手に思ってるんですけど、そもそも検索しても
そのヘッダーファイルらがひっかからなかったんで、
どなたか、教えてください。
0249デフォルトの名無しさん
NGNGちゃんとbccで動作するように作りましょう。
0250デフォルトの名無しさん
NGNG返り値として0が返されますが、この0が返されるまでの
時間が長すぎて困っています。
例えば、2ちゃんねるのこの板のsubject.txtを読み終わるまでに
実際のデータはすぐに読み込めるのですが、0が返されるまでに
10秒くらいかかります。
この時間を短縮する方法はありませんか?
0251250
NGNG0252デフォルトの名無しさん
NGNGそうだっけ?
0253デフォルトの名無しさん
NGNGRFC2616を読みなさい
0254253
NGNG0255デフォルトの名無しさん
NGNGプログラムは今までやったことがないのですが、
この間C言語入門という本を買ってきて一通り読み理解しました。
そこで無謀にもネットワークプログラムなんか面白そうだなと
思って、図書館でリチャードスティーブンスという人の
unixネットワークプログラム という本を借りてきたのですが、
少し読んでみたのはいいですが、何がかいてあるのかさっぱり
わかりませんでした。
そこで、また本屋にいって初級よりちょっと上のレベルの本を
読んでみたのですが、このネットワークプログラムの本を理解
するほどの内容が書いてありませんでした。このネットワークプログラム
を理解するにはどのような本を読めば理解できるのでしょうか?
Cを勉強して半年ですが、がんばって理解したいと思うので
マジレスお願いします。
0256デフォルトの名無しさん
NGNG1.Linux,FreeBSDなどでWebサーバをたててみる。
2.ファイアウォールの設定をする。
3.パケットキャプチャーして眺めてみる。
4. 1でたてた鯖のアクセス数が10000HITいく頃には読めるようになってる。
0257デフォルトの名無しさん
NGNGサーバとホストの違いを把握する
0258デフォルトの名無しさん
NGNGサーバーがサーバーを見ていることになりホストがなくなる。
ホストは必須ではない。
またWindowsのファイル共有では勝手にホストがサーバーに変わったり
サーバーがホストに変わったりする。
0259デフォルトの名無しさん
NGNGTCP/IPによるネットワーク構築〈Vol.1〉原理・プロトコル・アーキテクチャ
Douglas E. Comer (著), 村井 純 (翻訳), 楠本 博之 (翻訳)
http://www.amazon.co.jp/exec/obidos/ASIN/432012054X/
読了後、まだ橋渡しが欲しければ、
http://www.amazon.co.jp/exec/obidos/ASIN/4320028007/
http://www.amazon.co.jp/exec/obidos/ASIN/4894714671/
あたり。
続きは推薦図書スレで。
0260デフォルトの名無しさん
NGNG(´-`).。oO(クライアントのことなのかな…
(・∀・)イズレ ニセヨ >>258ハ アフォ!
client/serverは、マシンだけに有効な概念ではない。
Network entityという概念を理解せよ。
0261デフォルトの名無しさん
NGNGWinsockで書いたクライアントで通信ってできますか?
UNIX..でクライアントも書いたのですが、bccでコンパイルが
通らなかったので。。
gccはcygwinを入れたときに入ったのでUNIXプログラムもコンパイルできるのですが、
素直にWinsockでクライアントを書くのと、bccでこのプログラムを
コンパイルできるようにするのと、どっちが楽ですかね。
正直、あんまり時間ないので短時間でできる奴のほうがいいのですが。。
0262デフォルトの名無しさん
NGNG0263261
NGNGつまりできるってことでよろしいですよね?
0264デフォルトの名無しさん
NGNGLinuxのApacheにWindowsのIEで観覧できますか?と同じような話かと
0265デフォルトの名無しさん
NGNG既にCygwinのgccで通るプログラムがあるならそのままやる方が
楽は楽だろうけど、作ったプログラムを配布しようと思ったら
cygwin1.dllも配布しなきゃとかGPLだから〜とかあるんで、最終的
にどっちでやるかは自分で判断しる。
0266デフォルトの名無しさん
NGNG詳しくないんだがcygwin関連でそういう制約あったっけ?
0267デフォルトの名無しさん
NGNGwVersionRequested = MAKEWORD(2, 0); //バージョン 1.1 を要求する
nErrorStatus = WSAStartup(wVersionRequested, &wsaData);
if (atexit((void (*)(void))(WSACleanup))) {//終了時にWinSockのリソースを解放するようにしておく
fprintf(stderr,"atexit(WSACleanup)失敗\n");
exit(-1);
}
if ( nErrorStatus != 0 ) {
fprintf(stderr,"WinSockの初期化失敗\n");
exit(-1);
}
/*-----------------------sdにソケットを作成します----------------------------*/
sd = socket(PF_INET, SOCK_STREAM, 0); //TCPで通信
if(sd == INVALID_SOCKET){
fprintf(stderr,"ソケット作成失敗\n");
}
0268デフォルトの名無しさん
NGNGsv_sockaddr.sin_family = AF_INET;//インターネットの場合
sv_sockaddr.sin_addr.s_addr = inet_addr("169.254.185.85");//サーバのIPアドレス
sv_sockaddr.sin_port = htons(PORT);//ポート番号
memset(sv_sockaddr.sin_zero,(int)0,sizeof(sv_sockaddr.sin_zero));
/* 指定のソケットでサーバへコネクトします */
if(connect(sd,(struct sockaddr *)&sv_sockaddr,sizeof(sv_sockaddr)) == SOCKET_ERROR){
fprintf(stderr,"サーバへの接続失敗\n");
}
FD_ZERO(&r_fd);//r_fdを初期化
while(1){
FD_SET(0, &r_fd);//キーボードをr_fdに追加
FD_SET(sd, &r_fd);//fdをr_fdに追加
select(sd+1, &r_fd, NULL, NULL, NULL);
if(send(sd, buf, lstrlen(buf), 0) == SOCKET_ERROR){
fprintf(stderr,"サーバへの送信失敗\n");
}
if(FD_ISSET(0, &r_fd)){
memset(buf, 0, sizeof(buf));
fgets(buf, RECVSIZE - 1, stdin);
send(sd, buf, lstrlen(buf), 0);
}
0269デフォルトの名無しさん
NGNGmemset(buf, 0, sizeof(buf));
buf_len = recv(sd, buf, RECVSIZE - 1, 0);
if(buf_len == 0){
break;
}
buf[buf_len] = '\0';
printf("%s",buf);
}
if (buf_len == SOCKET_ERROR ){
fprintf(stderr,"サーバからの受信失敗\n");
}else{
buf[buf_len] = '\0';/* 受信したバッファの後ろにNULLを付加する */
}
}
closesocket(sd);
exit(0);
}
0270デフォルトの名無しさん
NGNGbufにゴミみたいのがまざってしまうのですが、何故でしょうか?
ちなみに、間違ってip書いちゃったけど、気にしないでください。。
0271デフォルトの名無しさん
NGNG0272デフォルトの名無しさん
NGNGなんかめちゃくちゃだよ?
selectの後のsendは何?
if (buf_len == SOCKET_ERROR ){
fprintf(stderr,"サーバからの受信失敗\n");
}else{
buf[buf_len] = '\0';/* 受信したバッファの後ろにNULLを付加する */
}
の場所はそこなの?
0273デフォルトの名無しさん
NGNGcygwin1.dllはGPL。
続ける場合はGPLスレかUnix板のCygwinスレにでも移動して。
0274デフォルトの名無しさん
NGNGWinSockで
FD_SET(0, &r_fd);
select(sd+1, &r_fd, NULL, NULL, NULL);
if(FD_ISSET(0, &r_fd)){
memset(buf, 0, sizeof(buf));
fgets(buf, RECVSIZE - 1, stdin);
send(sd, buf, lstrlen(buf), 0);
}
これ(標準入力をselectで待つ)できたっけ?
Cygwinのgccならその辺エミュレートしてるから動くだろうが、その場合
WSAStartupとかやる必要ないし。なんかUnix流のやり方とWinSockの
やり方がごっちゃになってるような…
0275デフォルトの名無しさん
NGNGできない(WSAENOTSOCKを食らう)
0276デフォルトの名無しさん
NGNGファイルをすべて on memory でもっていて転送したとしても、
TransmitFile を使って行うファイル転送にかなわない。
(両方の場合も非同期転送でやってます。)
どうしてこんなに効率いいんだ? > TransmitFile
どんな魔法を使っているんだYO
おまえら、TransmitFileに自作転送ルーチンで勝てた人いらっしゃいますか?
0277デフォルトの名無しさん
NGNG0278デフォルトの名無しさん
NGNGパフォーマンス的には厳しい。
linuxにもsendfileってのがあるね。
0279278
NGNG転送したい内容は既にメモリ上でもっているんですが(w
>>278
そうですねよ。。。
究極の回答はLANのデバイスドライバ作ってそこにファイル転送ルーチン仕込めということなのでしょうか?
それともユーザランドでカーネルレベルでのメモリ確保を行って、
そこから転送すればよいのでしょうか? それができるかどうかはなぞですが(w
0281デフォルトの名無しさん
NGNG> そこから転送すればよいのでしょうか?
つまるところそれを肩代わりするのがTransmitFileやsendfile
なのでは?
0282デフォルトの名無しさん
NGNG非同期転送って、WriteFileExやWSASendのコールバックでやってる?
それで負けるんならお手上げだよなぁ・・・。
0283デフォルトの名無しさん
NGNG0284デフォルトの名無しさん
NGNG0285デフォルトの名無しさん
NGNG0.9でBODYだけ取得できるのは知ってましたが
それって問題無いんですか?
0286デフォルトの名無しさん
NGNG0287276
NGNGWSASendの非同期でやっています。
Athlon1G Memory512MB の環境で150KB程度のファイルを転送させて、
apache benchで 5クライト1000アクセスで測定した結果、
TransmitFileと自作の転送ルーチンの差が 秒間10アクセス程度の差がでています。
0289デフォルトの名無しさん
NGNGFAQだけど、socket buffer は大きくしてる?
http://www.asahi-net.or.jp/~vz4h-sruz/memo/ffftp-hack.html
とかが参考になるかも。
0290276
NGNG知りませんでした(w
で、やってみました。
転送レートが 秒間3〜10ぐらい伸びました。感動しました。
で、結果からなんですが、転送レートにばらつきがあるのが疑問点です。
自宅LANなので他人が回線を使っているわけでないのでほぼ一定でなければおかしいような気がします。
そーゆーものなんでしょうか?
気づいたことは、
通常は 75〜85% ぐらいの負荷なのですが、
転送率が良くなるときにきまってサーバの CPU使用率が 100%振り切っています。
何かOS側、もしくはLANカードのドライバ(カニさん(w) が関係しているのでしょうか。
もう少し検証してみます。。。
0291デフォルトの名無しさん
NGNGlinuxのドライバ書きの外人がボヤいてた気がする
0292デフォルトの名無しさん
NGNG0293デフォルトの名無しさん
NGNG0294デフォルトの名無しさん
NGNG0295デフォルトの名無しさん
NGNGあんなにうまくなければ乱獲されずに済んだのに。
0296デフォルトの名無しさん
NGNGもし、TransmitFile の場合に、そういう現象が起きてないなら、
作りの問題かもね。
あらかじめ、ワーカスレッドを何十個か必要なだけ作っておいて、
accept後、そいつらに同期send+closeさせてみると多少マシになるかも?
0297276
NGNG>もし、TransmitFile の場合に、そういう現象が起きてないなら、
>作りの問題かもね。
うわーん(w
>あらかじめ、ワーカスレッドを何十個か必要なだけ作っておいて、
>accept後、そいつらに同期send+closeさせてみると多少マシになるかも?
スレッドプールはすでに導入済みです。
0298276
NGNGワークメモリを FileMapping してみたら、ちょっとだけ効率が上がりました。
カーネルに(近いレベルで)取得したメモリから
ソケット(カーネル)に書き出せるからかな?
昨日やった実験で少しパフォーマンスが向上したのでご報告。。。
0299276
NGNGどこでもカニはたたかれますよね。
実は、転送効率を測定するためにベンチを走らせたり、
自作のクラッシャーで攻撃すると Windows OS 自体がクラッシュしたりする
なぞの現象になやんでいたりします。一説にはドライバがくさっているとか。。。
とりあえず、Intel のカード買ってくる予定です(w
これでダメならメモリがやばいかもしれない。。
プログラムと関係ないので sage
0300デフォルトの名無しさん
NGNG0301デフォルトの名無しさん
NGNGネットワークプログラムを最近始めたものですが、HTTP転送によるファイル転送(WebDAVじゃなく)を調べているのですが、参考にされたWebサイトありませんか?
また、TransmitFileはWin固有でしょうか?
0302デフォルトの名無しさん
NGNG0303デフォルトの名無しさん
NGNG本当にドライバが腐ってるだけなら
とっくに誰かが安定したものに書き直してるでしょう
おそらく腐ってるのはドライバではなく仕様だと思われ
0304デフォルトの名無しさん
NGNG0305276
NGNGクライアント側でしょうか?
おいらはサーバ作っているんでちょっと違いがあるかもしれないけど、
とりあえず有名どころで、
http://www.studyinghttp.net/index.html
あとは、 RFC とか、そこら辺に転がっているソースとか、
高速化のところは apache2 とか参考にしています。
近々このソースも公開する予定なので、もしよろしければ参考にしてください(w
0306301
NGNG0307301
NGNG0308301
NGNG0309デフォルトの名無しさん
NGNG(メモリがswap outされていたとか以外に考えにくい)
メモリを物理メモリにロックした場合と比較してみては?
あと、ソケットにTCP_NODELAY指定はしてあるんだっけ?
0310デフォルトの名無しさん
NGNGメモリへ載せるための転送も計算に入れてる?
0311デフォルトの名無しさん
NGNG速い時はCPU利用率が100%になっていると言っているのだから、
copy from memory to memoryがボトルネックになりつつあるのは明らかだが…
Libraryやkernelの中身まで考えたことないんだろうな、>>309は。
データのメモリアライメントも考えたことないのだろうし。
0312デフォルトの名無しさん
NGNGhttp://deesse.univ-lemans.fr:8003/Connected/RFC/1122/21.html
DMA転送する前にalignmentを調整する必要がないように考えられたのだが。
0313デフォルトの名無しさん
NGNG>速い時はCPU利用率が100%
ってのは、ドライバがカニだからじゃないの?
よほど小さな単位でsendしてるのでないかぎり、
(普通にmalloc等で確保した領域を使っての)send部分が原因で
CPU使用率が100%になるなんて、見たことないけど?
0314デフォルトの名無しさん
NGNG0315デフォルトの名無しさん
NGNG今回は、ReadFile()の(mallocした領域への)読み込みは、起動直後に
完了していて、転送時の計測のカウントに入らないんじゃなかったの?
0316デフォルトの名無しさん
NGNGそれを防ぐために、TransmitFileなんてものがある。
0317デフォルトの名無しさん
NGNG通常のsocketの TCP->IP->Ether、なんてプロトコルスタックを下るような
動作をせずにショートカットしてるの?
ま、それはともかく、今は、mmap領域とmalloc(中身はGlobalAllocとかだ
よね?)領域を sendした場合の動作の違いについての話なので、
TransmitFileの話は無関係だよね?
0319276
NGNG>あと、ソケットにTCP_NODELAY指定はしてあるんだっけ?
してません。
で、設定してみたところ、あんまりかわらないか、現状以下の数字しか出なかったです。
長いので次の書き込みでベンチを貼り付けます。
0320276
NGNGDocument Length: 165142 bytes
Concurrency Level: 5
Time taken for tests: 187.694 seconds
Complete requests: 10000
Failed requests: 0
Broken pipe errors: 0
Total transferred: 1653547960 bytes
HTML transferred: 1651457542 bytes
Requests per second: 53.28 [#/sec] (mean)
Time per request: 93.85 [ms] (mean)
Time per request: 18.77 [ms] (mean, across all concurrent requests)
Transfer rate: 8809.81 [Kbytes/sec] received
Connnection Times (ms)
min mean[+/-sd] median max
Connect: 0 7 29.7 6 2948
Processing: 19 87 144.3 82 9093
Waiting: 18 86 144.3 82 9092
Total: 19 93 147.2 89 9106
0321276
NGNGDocument Length: 165142 bytes
Concurrency Level: 5
Time taken for tests: 177.813 seconds
Complete requests: 10000
Failed requests: 0
Broken pipe errors: 0
Total transferred: 1653637020 bytes
HTML transferred: 1651546184 bytes
Requests per second: 56.24 [#/sec] (mean)
Time per request: 88.91 [ms] (mean)
Time per request: 17.78 [ms] (mean, across all concurrent requests)
Transfer rate: 9299.87 [Kbytes/sec] received
Connnection Times (ms)
min mean[+/-sd] median max
Connect: 0 8 3.5 7 24
Processing: 18 81 40.3 80 3103
Waiting: 17 80 40.3 80 3102
Total: 18 88 40.3 88 3113
あ、これは ab の結果です。。
0322276
NGNG>よほど小さな単位でsendしてるのでないかぎり、
ソケットのバッファ長は伸ばしているので小さい値で send していないと思います。
それでも、 CPU 70〜80は余裕で行きます。
apache2も同じように CPU を使用するのでそーゆーものなのではないのでしょうか?
なお、IISは速度こそapache2と同じですが、CPU使用率が 50%前後という恐ろしい結果を
出してくれます。 ゲイツマジックの予感。
0323デフォルトの名無しさん
NGNG指定なしの場合にすでに、ほぼ理論値近い値(NICはGbitとかじゃないよね?)
でてるから、いいんでないの?
CPU使用率問題は、ある程度はカニが原因っぽいから、NIC交換後に再計測
してみるとか。
0324276
NGNGそれが違うんです。。。
apache2 で同じファイルを転送したときの結果
Concurrency Level: 5
Time taken for tests: 159.725 seconds
Complete requests: 10000
Failed requests: 0
Broken pipe errors: 0
Total transferred: 1654330095 bytes
HTML transferred: 1651559264 bytes
Requests per second: 62.61 [#/sec] (mean)
Time per request: 79.86 [ms] (mean)
Time per request: 15.97 [ms] (mean, across all concurrent requests)
Transfer rate: 10357.36 [Kbytes/sec] received
Connnection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.3 0 11
Processing: 25 79 4.6 78 104
Waiting: 24 78 4.6 77 103
Total: 25 79 4.6 78 104
で、理論地をオーバーするような結果がえられるんですよ。。。なぞです。
0325276
NGNGConnnection Times の値の max がオイラのやつはめちゃくちゃでかいですね。
min は apache2 より小さいのに何かある条件かでガクンとひっかかるような
処理が行われているような気がしていました。
ひとつ思い当たる節があるので調査してきまうす。
0326デフォルトの名無しさん
NGNG>Transfer rate: 10357.36 [Kbytes/sec] received
のことだったら、理論値オーバーには、なってないよね。
100Mbps = 100000000bps = 12207KB
ヘッダその他、オーバーヘッドがあるから、これよりは若干落ちるけれど。
0327デフォルトの名無しさん
NGNG理論値超えてるって。もうちょっとEthernetプロトコルのお勉強してから書き込もうね。
0328276
NGNGhttp://pc3.2ch.net/test/read.cgi/tech/1043275721/
いまだにカクと処理が落ちるなぞは良くわからないのですが、
ソースや作りたちものを出さずしてなかなか説明しづらいところがあるので、
αテストということで。。。
0330デフォルトの名無しさん
NGNG余計な部分(file I/Oなど)を削ぎ落としての実測をしたことがない?
0331デフォルトの名無しさん
NGNGとりあえず、アドバイスはこんな感じかな?
細かくWSASend()を発行しない。
(なるべく、ヘッダと本体をあわせて1回のWSASendで送ってしまう)
ソケットバッファを大きくすると、closesocket() でのバッファの
flush 完了待ちが長くなるので、ワーカスレッド側で、closesocket()
まで面倒を見る。
■ このスレッドは過去ログ倉庫に格納されています