Java socket objekt används för att representera anslutningar mellan två maskiner . Däremot kan ett program med uttag förlorar sig om programmet väntar en anslutning för att upprätta . I det här fallet , kan du dela upp en separat tråd i utförandet som väntar på en anslutning, medan huvudprogrammet fortfarande körs . Genom att utvidga detta , kan du använda separat tråd för att övervaka uttag för anslutningar och hantera dem , bara anmäla programmet när en anslutning görs eller annan betydande även händer . Huvudsakliga ServerSocket Exempel
För att lyssna på en port via en socket , skapa en " SocketServer " objektet . Socket Servrar lyssnar efter anslutningar på en viss port . Vid mottagning av anslutning information om denna port , returnerar socketservern en " Socket " objektet . Alla data som tas emot via anslutningen kan bearbetas genom att uttaget objektet . Finns exempel på att köra kod i ett program
Trådar
trådar . Dessa trådar av exekvering tillåta den samtidiga driften av kod , vilket innebär att koden kan skrivas för att köra samtidigt genom olika trådar. Så , till exempel , kan ett program som vill följa någon form av bakgrund stat eller förbindelse skapar en tråd som gör detta , och kallar den röda tråden när något ändras eller anslutning sker .
Lyssna till hamnar med Trådar
Genom att sätta upp en annan tråd , kan du skapa kod som övervakar uttaget i bakgrunden medan huvudprogrammet körs . Till exempel , kan du implementera en klass som utökar " Runnable " klass , och köra det som en separat tråd för att köras i bakgrunden , lyssnar på en port :
privata statisk klass SocketListen implementerar Runnable { public void kör ( ) { try { listenSocket = ny ServerSocket ( 9999 ) , //lyssna på port 9999 } catch ( IOException e ) { System.exit ( -1 ) , //error }
Socket clientSocket = null ; try { mottagna = serverSocket.accept ( ) , //anslutning objekt om framgång } catch ( IOException e ) { System.exit ( -1 ) , //error } } } Addera Dela upp tråd
p Om du har definierat ett körbart klass som ska användas som en lyssnande /övervakning agent , är allt som återstår att använda den som en tråd . Huvudprogrammet kan kalla en separat tråd som en del i genomförandet som kommer att köra socket lyssnar koden . När koden är klar antingen på grund av anslutningen framgång eller fel , återförenas övervakningen tråden den röda tråden . Den röda tråden löper en vänteslingan tills klar övervakning tråd :
Thread t = new Thread ( ny SocketListen ( ) ) ; t.start ( ) ;
samtidigt ( t.isAlive ( ) ) { threadMessage ( " Still waiting ... " ) ; t.join ( 1000), //väntar en sekund innan loop } Addera