.NET Framework で SSL を使ったソケット通信をするときは NetworkStream を SslStream にラップして使うのが一般的なのですが、.NET Compact Framework にはいつものようにこのクラスが存在しません。
そこで利用できるのがこのサンプルにあるSslHelperというクラス。
Enable SSL for managed socket on windows mobile - Random.Next() - Site Home - MSDN Blogs
SslHelperを使うと初期化したソケットをSslHelperのコンストラクタに指定して呼び出すだけでSSL接続になります。
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); SslHelper sslHelper = new SslHelper(socket , Server.Name); IAsyncCallback ar = m_socket .BeginConnect(server.GetEndPoint(), new AsyncCallback(OnConnected), socket);
ただ、注意しないといけない点があって、受信待機で NetworkStream.DetaAvaliable や Socket.Available だけでデータを確認している場合は受信データがいつまでたってもこない状態になってしまいます。Socket.Pollを使いましょう。
socket.Poll(100, SelectMode.SelectRead);
※.NET Compact Framework の Socket で SSL をつかう - 伊勢的WM - Windows Phone アプリ開発グループ より