バッファを指定せずにソケットからデータを受信したいとします。
申し訳ありませんが、それは単にできません。バイトを受信するバッファを用意する必要があります。バイトを使用したくない場合は、読み込んだ後にバッファを破棄してください。
受信データバッファからxバイトを削除したいだけです。
APIはありません。バイトを有効なバッファに読み込む必要があります。後でそのバッファで行うことは、あなた次第です。
Iはrecv()
の戻り値以上のコードを実行SOCKET_ERROR
とWSAGetLastError()
戻るWSAECONNABORTED
あります。
代わりにWSAEFAULT
が必要です。
ソケットのRXバッファからデータを削除する受信機能を使用することはできませんか?
もちろん、可能です。あなたは、単に例えば、それだけで一時的なバッファであっても、バッファにバイトを読み取ることがあります。
int ignoreBytes(SOCKET sock, int numBytes)
{
u_char buf[256];
while (numBytes > 0)
{
int numRead = recv(sock, (char*)buf, min(sizeof(buf), numBytes), 0);
if (numRead <= 0)
return numRead;
numBytes -= numRead;
}
return 1;
}
ignoreBytes(gSocket, userDataLength);
それはバッファポインタがNULLとなる可能性があると言うのでしょうか? – EJP
どこにもありません。しかし、他のソケットライブラリーでは可能なので可能だと思いました。 –
私はそのようなライブラリを認識していませんが、いずれにせよ*非連続的です。* – EJP