Fråga : hur man använder den samma porten without repeatly

jag fick error
INFO: Undantag i PortListener
SEVERE: null
java.net.BindException: Tilltala
på java.net .PlainSocketImpl.socketBind (metod för Native)
på java.net .PlainSocketImpl.bind (PlainSocketImpl.java: 359)
på java.net .ServerSocket.bind (ServerSocket.java:
för 319) på java.net .ServerSocket.t> (ServerSocket.java: 185)
på java.net .ServerSocket.t> (ServerSocket.java: 97)
på tcplistener.PortListener$ToDoTask.run (PortListener.java:
för 67) på java.util.TimerThread.mainLoop (Timer.java: 512)
på java.util.TimerThread.run (Timer.java: 462)


how som löser problem > för
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
" codeBody " " class= " för public klassificerar PortListener, fördjupa HttpServlet { privat hålighetsocka; privat ServerSocket serverSocket; privat tidmätaretidmätare; privat int a = 0; offentlig utan laga kraft init () kastar ServletException { försök { tidmätare = ny tidmätare (); timer.schedule (nya ToDoTask (), 5000); } fånga (undantagsföre detta) { Logger.getLogger (PortListener.class.getName ()).log (Level.SEVERE, ogiltigt, före detta); } } klassificera ToDoTask fördjupa TimerTask { offentligt annullera körningen () { försök { timer.cancel (); InputStream är = getServletContext () .getResourceAsStream (”/WEB-INF/navl.properties”); Rekvisita p = ny rekvisita (); p.load (är); is.close (); Stränga pro = p.getProperty (”dataPort”); int-port = (pro) Integer.parseInt; serverSocket = nya ServerSocket (port); (riktiga) stunder, { System.out.println (”lyssna på ......” + port); socka = serverSocket.accept (); Tråd t = ny tråd (nya ModuleHandler (sockan)); t.start (); //startthread (socka); } } fånga (undantagsföre detta) { System.out.println (”undantag i PortListener”); Logger.getLogger (PortListener.class.getName ()).log (Level.SEVERE, ogiltigt, före detta); } } } skyddad utan laga kraft mest processRequest (den HttpServletRequest förfråganen, det HttpServletResponse svaret) kast ServletException, IOException { } skyddad utan laga kraft doPost (den HttpServletRequest förfråganen, det HttpServletResponse svaret) kast ServletException, IOException { mest processRequest (förfrågan, svar); } allmänhet stränger getServletInfo () { gå ”den kort beskrivningen tillbaka”; }/ }
" klar "

Svar : hur man använder den samma porten without repeatly

I detta fall den 1st tidmätaretråden skapar ServerSocketen, och den kan för att inte vara den samlade avskrädet då den 2nd tidmätaretrådkörningen; det är varför du får röraundantaget.

Du kan få på vilken port håligheten lyssnar genom att använda metoden för getLocalPort ().

Andra lösningar  
 
programming4us programming4us