wsagetlasterror()は122を返します
-
09-10-2019 - |
質問
まあ..私はそれが何を意味するのか本当にわかりませんが、私のシステムは、不十分なメモリーのために泣くことなく走り、走り、走ります...
Winsockエラーコード(MSDN)には122がないため、システムエラー122に関係していると思います...
誰かが手がかりを得ましたか?...
通話時に発生します getaddrinfo(NULL, /*PortNumber*/, &hints, &pFinal)
編集 さて...もっとコードが増えます(コメントしていないので、意味をなさない)
addrinfo hints, *pFinal = nullptr;
memset(&hints, 0, sizeof(hints));
hints.ai_flags = AI_PASSIVE;
hints.ai_socktype = SOCK_STREAM;
hints.ai_family = AF_INET;
if(getaddrinfo(NULL, g_ACCEPTOR_PORT_NUMBER, &hints, &pFinal))
return ERROR_BIND_SOCKET;
問題は私のg_acceptor_port_numberにあります。
operator const char*()
{
std::stringstream ss;
ss << m_nPortNumber;
return ss.str().c_str();
}
コンバージョンオペレーターを変更する必要がありますか?...この「stringint」を使用することを好むので、ポート番号を文字列と番号として保存したり、明示的に変換する必要はありません...
解決
問題はあなたの実装です operator const char*()
. 。その関数が戻ったら、あなた stringstream
オブジェクトは、範囲内にないため、もはや有効ではありません。
他のヒント
おそらくの悪いパラメーター getaddrinfo
電話。もっとコードを投稿できますか?
入力します net helpmsg 122
コマンドプロンプトで、あなたは取得します:
システムコールに渡されたデータ領域は小さすぎます。
getaddrinfo
実際にエラーコードを返します。これは、で指定された値に対してテストする必要があります getaddrinfoドキュメント
おそらく、PFINAL変数のサイズが小さすぎます。より徹底的な回答を得るには、さらにコードを投稿する必要があります。
所属していません StackOverflow