Boost.Asioを書いたけど、.NET Frameworkにも同様にSslStreamクラスが用意されている。
使い方もほぼ同じで
var c = new TcpClient( "ホスト名", 443 );こんな感じ。違いは
var s = new SslStream( c.GetStream() );
s.AuthenticateAsClient( "ホスト名" );
s.Write( Encoding.Default.GetBytes( "GET / HTTP/1.0\r\n\r\n" ) );
var r = new StreamReader( s, Encoding.Default );
Console.WriteLine( r.ReadToEnd() );
- Windows環境ではgetservbyname()が信用できないので直接443と書いている点
- .NET FrameworkはByteとCharを区別しているので明示的な変換が必要になる点
- Byte→Char変換を中断するのは面倒くさいのでReadToEnd()ですべて読み込んでしまっている点
0 件のコメント:
コメントを投稿