この質問は何度も聞かれましたが、どの解決策も私には当てはまらないようです。先に進む前に、ちょっとしたコードを投稿します。
// Await the response and stream it to the buffer, with a physical limit of 1024 ASCII characters
stringstream input;
char buffer[4096*2];
while (recv(sock, buffer, sizeof(buffer) - 1, MSG_WAITALL) > 0)
input << buffer;
input << '\0';
// Close the TCP connection
close(sock);
freehostent(hostInfo);
そして、ここに私の要求があります:
string data;
{
stringstream bodyStream;
bodyStream
<< "POST /api/translation/translate HTTP/1.1\n"
<< "Host: elfdict.com\n"
<< "Content-Type: application/x-www-form-urlencoded\n"
<< "Content-Length: " << (5 + m_word.length())
<< "\n\nterm=" << m_word;
data = bodyStream.str();
}
cout << "Sending HTTP request: " << endl << data << endl;
私はこの種のプログラミングに非常に慣れていません(そしてスタックオーバーフロー-自分で問題を解決するまで、それをスローアウトして壁に頭をぶつけることを好みますが、ここで迷子になります!)そして、なぜそれが必要なのかを理解する助けを本当に感謝します長いです!非ブロックになるように設定することを検討しましたが、期待どおりに機能させるのに問題がありました。ノンブロッキングルートが私が行く必要がある方法である場合、ここの人々は私を正しい方向に向けることができるかもしれません.
多くの人がライブラリの使用を好むのを見てきましたが、私はこれを学びたいと思っています!
また、Mac でのプログラミングやソケットの操作も初めてです。おそらく初めてのプロジェクトとしてはベストではないかもしれませんが、今始めました!だから私は続けたいです:)どんな助けでもいいです!
前もって感謝します!