Qualquer problema ao substituir o novo Socket () por SocketChannel.open (). Socket ()?

O que pode dar errado se eu simplesmente substituir

socket = new Socket()

com

socket = SocketChannel.open().socket()?

Background: Eu tenho algum código legado usandonew Socket(), e eu queria ser capaz de interromper osocket.connect() ligar. Não quero reescrever o código para usar o NIO. Eu aprendi issoThread.interrupt() não interrompesocket.connect(), mas issosocket.close() em outro segmento é suposto interromper a conexão. Estranhamente, isso funcionou com o Java 7, mas não com o Java 6.

De alguma forma eu tenho em mente que usarsocket = SocketChannel().open().socket() magicamente me permitiria usarThread.interrupt() interrompersocket.connect(). Não, mas, estranhamente, isso fazsocket.close() interrompersocket.connect() no Java 6 também!

Note que eu não estou usando diretamente o anexoSocketChannel de qualquer forma --- aparece quando eu crio oSocket e nunca mais.

O que pode dar errado com isso?

questionAnswers(2)

yourAnswerToTheQuestion