2011-09-09 7 views
3

私が望むのはシンプルです - C++/CLIの.Netソケットから新しいboost asioソケットを作成するコードサンプルです。そのようなものを作る方法?ここでC++/CLIの.Netソケットをboost :: asioソケットに変換する方法は?

は私がやりたいものの擬似コードです:

.net::socket a; 
boost::asio::socket b; 
b.assign(a.nativeWin32Socket()); 
+0

あなたは何をすべきでしょうか? boost :: asioソケットを.NETで置き換えますか? – Simon

+0

いいえ - 私はhavicgを作成して、.Net側で.NetソケットインスタンスをBoost :: asioソケットに変換する接続を受け入れます。 – Rella

+0

「.NETソケットをBoost :: asioソケットに変換する」とはどういう意味ですか?コードレベルでの移植ですか?それらの間でTCPを介して接続しましたか?または? – Simon

答えて

4

あなたは試したことがありますか?

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); 

+0

関連するトピックhttp://stackoverflow.com/q/7502644/434051(Asioから.Net)で、より完全でテスト済みのコード解答を提供することができますか? – Rella

関連する問題