我下面在http://docs.oracle.com/javase/tutorial/networking/datagrams/broadcasting.html UDP的教程,我已經複製了所有的代碼和編譯它,現在如果我第一次,然後編譯客戶端的服務器,該服務器打印了這一點,在控制檯UDP地址已經在使用?
Exception in thread "main" java.net.BindException: Address already in use: Cannot bind
at java.net.PlainDatagramSocketImpl.bind0(Native Method)
at java.net.PlainDatagramSocketImpl.bind(Unknown Source)
at java.net.DatagramSocket.bind(Unknown Source)
at java.net.DatagramSocket.<init>(Unknown Source)
at java.net.DatagramSocket.<init>(Unknown Source)
at java.net.DatagramSocket.<init>(Unknown Source)
at QuoteServerThread.<init>(QuoteServerThread.java:19)
at MulticastServerThread.<init>(MulticastServerThread.java:10)
at MulticastServer.main(MulticastServer.java:3)
QuoteServerThread線19是
socket = new DatagramSocket(12345);
MulticastServerThread線10是
public MulticastServerThread() throws IOException {
super("MulticastServerThread"); // line 10
}
MulticastServer線3是
public class MulticastServer {
public static void main(String[] args) throws java.io.IOException {
new MulticastServerThread().start(); // line 3
}
}
如果我第一次啓動服務器,然後在客戶端,客戶端打印出此控制檯
Exception in thread "main" java.net.BindException: Address already in use: Cannot bind
at java.net.PlainDatagramSocketImpl.bind0(Native Method)
at java.net.PlainDatagramSocketImpl.bind(Unknown Source)
at java.net.DatagramSocket.bind(Unknown Source)
at java.net.MulticastSocket.<init>(Unknown Source)
at java.net.MulticastSocket.<init>(Unknown Source)
at MulticastClient.main(MulticastClient.java:9)
MulticastClient 9號線是
MulticastSocket socket = new MulticastSocket(12345);
的錯誤來看,似乎對我來說,這是與聆聽港口有關,我該如何解決這個問題?
帆布
剛剛關閉並重新打開Eclipse,仍然得到相同的錯誤:( – Canvas 2013-02-26 18:14:31
@Canvas試試你的電腦?如果你沒有改變教程中的客戶端和服務器之間的任何東西,它不應該是一個代碼錯誤。 – 2013-02-26 18:40:44
我確實改變了端口,就是這樣,但是確定,它會在高級版中使用:) – Canvas 2013-02-26 19:00:45