サーバー上のクライアントからのメッセージを受け入れるプログラムを C++ で作成しようとしています。ただし、最初にクライアントがメッセージのサイズを送信し、この値を使用して、サーバーは最終的に送信されたときにメッセージを格納するための文字の配列を作成します。メッセージ サイズの値を使用して配列を初期化しようとすると、コンパイラは messageSize 整数が定数値でなければならないためエラーがあると表示します。整数型の配列の長さ:
//Deal with data in DNS style
int dnsStyle()
{
recv(clientSocket, bufferSize, 1, MSG_WAITALL);
return bufferSize[0];
}
//Communicate in the DNS style of addressing
char DNS()
{
int messageSize = dnsStyle();
printf("The message buffer has been tailoured to this size: '%d'", messageSize);
char bufferMessDNS[messageSize];
//Then recieve the actual message itself
recv(clientSocket, bufferMessDNS, messageSize, MSG_WAITALL);
//Then send the message back to client
send(clientSocket, bufferMessDNS, messageSize, 0);
//std::string returnMess = "OK";
//send(clientSocket, sendBack.c_str(), sendBack.size(),0);
}