「百時間以下の残業規定など認めない、「未満」に変えろ!」と、偉い人。†STARTTLSとか、接続済みのTCPセッションを「途中から」SSL/TLSに切り替える話です。何を言っているのかさっぱりワカラナイヨという方に向けて、ふわっと説明します。2の部分は平文で(暗号化されていない通信)3以降のSSLで繋いだ後は、暗号化されたいわゆる安全な通信です。互いの条件が一致しない、あるいは暗号化は不要ならそのままTCPでやりとり、ということができます。...こういう例が当時見つからなかったので、メモしておきます。†まず、ソースコードから。クライアント側の例です。サーバ側だと更にsetUseClientModeの要否を確認とかも、よしなに。スレッド、とか?だとExceptionになるかと)TCPの送受信を行うスレッド(tcp_in/tcp_outを読み書きする)やらSSLの送受信を行うスレッド(ssl_in/ssl_outを読み書きする)やらを別に作ることになります。読み書きの方法や、Threadの動かし方についてはここではメモしません。間違えて実装してしまいました。なく)SocketFactory.createSocketを使って...おや、socketなんて引数に渡せないぞ!?と、しばらくの間うなっていました。切替後の、startHandshakeに失敗していました。流れていってしまいました。「途中で切り替える」には、TCPのread()も途中で止めないといけません。closeしないこと、SSL側で使っているので。}発想としては、read()のようなブロックする段階で判定すると手遅れなので、TCPなのかSSLなのかをブロックしない処理で、逐一判定したい、という案です。して割り込むという案がありました。環境依存や、Javaのバージョンやら...きっちり吟味/検証しないと想定外の動作になる雰囲気は、あります。方法は、まぁ、何でもいいので、TCPとSSLを途中で切り替える(混在させる)なら、SSL側の処理をTCP側で拾わないような工夫を頑張って入れましょう。使用して作成しています。使用しています(このサイトについて)。