TCPソケット接続を介して文字列を送信しようとしています。問題は、Windowsソケットはconst charデータ配列しか取らないということです。ソケットを使用してストリングストリーム・データ型を送信する最も効率的な方法は何でしょうか?Windowsソケットは文字列を送信します
char *szMessage="Hello World";
send(Socket,szMessage,strlen(szMessage),0);
Windowsネイティブソケットライブラリでは、このジョブでは十分でない場合は、別のソケットライブラリを知りたいと思います。また、スレッド化のためにBoost C++ライブラリを使用し始めました。ソケットライブラリーはもう少し進んでいますが、stringstreamの送信をサポートしているかどうかは不明です。
std::stringstream ss(...);
ss.str().c_str(); // now the const char *
send(Socket,ss.str().c_str(),ss.str().length(),0);
'stringstream'は' const char * 'を得るために使用できる' std :: string'を検索する関数を提供していると思いますか? :) –
はい、もちろんです。私が言いたいのは、 'stringstream'からCの文字列を取得するのはそれほど複雑ではないということです。 – Constantinius
'stringstream :: str()'を一度呼び出すと、その結果をローカル変数に格納する必要があります。インラインで2回呼び出すのではなく、2つの一時的な 'std :: string'インスタンスを割り当てて解放してください。 –