diff --git a/src/socket.h b/src/socket.h index 3386b7d1d..eba1b89f8 100644 --- a/src/socket.h +++ b/src/socket.h @@ -336,23 +336,25 @@ class TCPSocket : public Socket{ * \param str the string to be sent */ inline void SendStr(const std::string &str) { - unsigned len = static_cast(str.length()); + int len = static_cast(str.length()); utils::Assert(this->SendAll(&len, sizeof(len)) == sizeof(len), "error during send SendStr"); - utils::Assert(this->SendAll(str.c_str(), str.length()) == str.length(), - "error during send SendStr"); + if (len != 0) { + utils::Assert(this->SendAll(str.c_str(), str.length()) == str.length(), + "error during send SendStr"); + } } /*! * \brief recv a string from network * \param out_str the string to receive */ inline void RecvStr(std::string *out_str) { - unsigned len; + int len; utils::Assert(this->RecvAll(&len, sizeof(len)) == sizeof(len), "error during send RecvStr"); out_str->resize(len); if (len != 0) { - utils::Assert(this->RecvAll(&(*out_str)[0], len) == len, + utils::Assert(this->RecvAll(&(*out_str)[0], len) == out_str->length(), "error during send SendStr"); } }