2016-05-23 41 views
-2

当我试图关闭侦听器时出现java.net.BindException: Address already in use: JVM_Bind错误。这是我打开监听器的代码。java.net.BindException:地址已经在使用中:试图关闭侦听器时出现JVM_Bind错误

SMPPServerSessionListener sessionListener = new SMPPServerSessionListener(newPort); 

这里是我的代码关闭它。

public String getCloseConn() throws IOException{ 
    System.out.println("porttt: " + newPort); 
    SMPPServerSessionListener sess = new SMPPServerSessionListener(newPort); 
    sess.close(); 

    return ""; 
} 

我的程序做的是询问用户端口号并在提交时启动它。然后,当用户单击触发getClossConn()方法的“停止服务器”按钮时,我试图关闭监听器,但是我收到了前面提到的错误。请帮助。 PS:请不要对我苛刻,我只是新来的:)

+2

你为什么试图在close方法中打开一个新会话?如果服务器会话已经打开,并且您尝试在同一个端口上打开另一个,则会看到您所看到的错误。 –

+1

@JimGarrison嗨,先生,你在谈论这一行吗? 'SMPPServerSessionListener sess = new SMPPServerSessionListener(newPort); '我想在这一行中我正在调用活动会话,然后用'sess.close()'关闭它。我做得不对吗? – chiradee

+0

请参阅下面的答案 –

回答

0

你不应该叫

SMPPServerSessionListener sess = new SMPPServerSessionListener(newPort); 

期望得到现有的监听器。该语句尝试在与现有侦听器相同的端口上创建一个NEW侦听器,这会导致您看到的错误。

您应该将对现有会话的引用传递给close方法,并关闭而不是

+1

谢谢先生@JimGarrison。这对我来说很好。 :) – chiradee

相关问题