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?