Cのソケットライブラリについていくつか質問があります。質問で参照するコードスニペットを次に示します。
char recv_buffer[3000];
recv(socket, recv_buffer, 3000, 0);
- recv_bufferをどのくらい大きくするかをどのように決定しますか?私は3000を使用していますが、それは任意です。
- あれば何が起こる
recv()
私のバッファよりも大きなパケットを受信しましたか? - もう一度recvを呼び出さずにメッセージ全体を受信したかどうかを確認し、受信するものが何もないときに永久に待機させるにはどうすればよいですか?
- スペースが不足することを恐れずにバッファーを追加し続けることができるように、バッファーに一定のスペースがないようにする方法はありますか?たぶん、バッファへの
strcat
最新のrecv()
応答を連結するために使用していますか?
たくさんの質問があることは承知していますが、ご回答をいただければ幸いです。