私は最近非常に奇妙な誤動作をしており、その理由を説明できません。私は自分用にネットワーク ライブラリを作成しました (まだ作業中です)。今日、他のアプリケーションがポートを使用していたため、単体テストが失敗しました。これは当然のことですが、期待どおりに失敗しませんでした。の結果を見ていますがbind()
、それは0でした。
handle = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
sockaddr_in address;
address.sin_family = AF_INET;
address.sin_addr.s_addr = INADDR_ANY;
address.sin_port = htons(port);
if (bind(handle, (const sockaddr*)&address, sizeof(sockaddr_in)) < 0)
{
throw std::runtime_error("failed to bind socket");
}
(ここに完全なコードがあります。)
私の経験ではbind()
、ポートが使用中の場合、エラーが返されると言われています。私は基本的に間違っていますか?
詳細については、Windows 7 の winsock について話しています。MinGWで構築。