私が望むのはシンプルです - C++/CLIの.Netソケットから新しいboost asioソケットを作成するコードサンプルです。そのようなものを作る方法?ここでC++/CLIの.Netソケットをboost :: asioソケットに変換する方法は?
は私がやりたいものの擬似コードです:
.net::socket a;
boost::asio::socket b;
b.assign(a.nativeWin32Socket());
私が望むのはシンプルです - C++/CLIの.Netソケットから新しいboost asioソケットを作成するコードサンプルです。そのようなものを作る方法?ここでC++/CLIの.Netソケットをboost :: asioソケットに変換する方法は?
は私がやりたいものの擬似コードです:
.net::socket a;
boost::asio::socket b;
b.assign(a.nativeWin32Socket());
あなたは試したことがありますか?
b.assign(a.Handle.ToInt32());
また、彼らはあなたがBとの両方がソケットを閉じて、あなたが期待していないポイントすることを得ることができますとしてのWSADuplicateSocketを使用する必要があります注意してください。
ようなので、あなたが何かを必要とする:全回答(テスト済み)
SOCKET native = a->Handle.ToInt32();
// Now native is a real socket
b.assign(boost::asio::ip::tcp::v4(), native);
は、今ではのWSADuplicateSocketを使用してソケットを複製することをお勧めし
SOCKET native = WSADuplicateSocket(a.Handle.ToInt32(),...);
b.assign(native);
:
関連するトピックhttp://stackoverflow.com/q/7502644/434051(Asioから.Net)で、より完全でテスト済みのコード解答を提供することができますか? – Rella
することができますBoost asioソケットにネイティブソケットを割り当てるにはassignを使用してください。受け入れられた回答はHow to create a Boost.Asio socket from a native socketです。
あなたは何をすべきでしょうか? boost :: asioソケットを.NETで置き換えますか? – Simon
いいえ - 私はhavicgを作成して、.Net側で.NetソケットインスタンスをBoost :: asioソケットに変換する接続を受け入れます。 – Rella
「.NETソケットをBoost :: asioソケットに変換する」とはどういう意味ですか?コードレベルでの移植ですか?それらの間でTCPを介して接続しましたか?または? – Simon