Hoi allemaal,
Ik ben hier al de hele dag mee bezig en ik kom er maar niet uit.
Ik heb een Java app die een Thread aanmaakt die luistert op een bepaalde TCP/IP port (die door de user in te stellen is) naar connecties.
De gebruiker heeft ook de mogelijkheid om de port te veranderen. Echter dan dient de Listener wel opnieuw opgestart te worden.
Dit gaat goed tenzij de user dezelfde port opgeeft.
Dan krijg ik dus een BindException. Dat zou logisch zijn aangezien er al een Listener draait op die port en de port in use zou zijn.
Echter voordat ik een nieuwe serversocket aanmaak close ik de huidige eerst. Dan lijkt mij dat hij de socket weer vrij zou moeten geven, maar ik blijf die error dus krijgen
Ter illustratie, deze code gebruik ik in de thread:
Ik print overigens de waarde van intListenPort voordat ik de socket aanmaak en die is correct.
Iemand die me kan helpen
Ik ben hier al de hele dag mee bezig en ik kom er maar niet uit.
Ik heb een Java app die een Thread aanmaakt die luistert op een bepaalde TCP/IP port (die door de user in te stellen is) naar connecties.
De gebruiker heeft ook de mogelijkheid om de port te veranderen. Echter dan dient de Listener wel opnieuw opgestart te worden.
Dit gaat goed tenzij de user dezelfde port opgeeft.
Dan krijg ik dus een BindException. Dat zou logisch zijn aangezien er al een Listener draait op die port en de port in use zou zijn.
Echter voordat ik een nieuwe serversocket aanmaak close ik de huidige eerst. Dan lijkt mij dat hij de socket weer vrij zou moeten geven, maar ik blijf die error dus krijgen
Ter illustratie, deze code gebruik ik in de thread:
code:
1
2
3
4
5
6
7
| if (serversocket != null)
{
serversocket.close();
serversocket = null;
}
serversocket = new ServerSocket(intListenPort); |
Ik print overigens de waarde van intListenPort voordat ik de socket aanmaak en die is correct.
Iemand die me kan helpen
It’s nice to be important but it’s more important to be nice