ref: http://msdn.microsoft.com/en-us/library/windows/desktop/ms740120(v=vs.85).aspxの下部 にある c++ サンプル コード
char RecvBuf[1024];
UDP メッセージを受信するといっぱいになります。string str;
関数から文字列を返すことができるように、 std::string 変数に格納するにはどうすればよいですか?
ref: http://msdn.microsoft.com/en-us/library/windows/desktop/ms740120(v=vs.85).aspxの下部 にある c++ サンプル コード
char RecvBuf[1024];
UDP メッセージを受信するといっぱいになります。string str;
関数から文字列を返すことができるように、 std::string 変数に格納するにはどうすればよいですか?
次のコンストラクタを使用しますstd::string
。
string ( const char * s, size_t n );
基本的にRecvBuf
は標準(テキスト)の「文字列」であれば作るだけでOK
std::string str( RecvBuf );
しかし、これはヒットchar
するまですべての s をコピーします。\0
また、このバッファはソケットから受信した未加工のバイトを格納するため、バイトを期待する必要があり\0
ます。
データを受け取ると、そのサイズがわかります。だから、ただ使う
std::string str( RecvBuff, buff_len );