Chat servers traditioneel toestaan twee of meer gebruikers te communiceren een-op - een via tekstuele boodschappen op hun computers . Wezen , een chat- server luistert voor inkomende berichten en stuurt uitgaande berichten . Op Java , kunt u een Chat Server klasse die door de gebruiker gedefinieerde input en output stromen al toegewezen aan seriële sporten neemt creëren , luistert voor inkomende berichten vanaf een andere computer en verzendt uitgaande berichten die door de gebruiker . Wat je nodig hebt Java Development Kit ( JDK ) Toon Meer Aanwijzingen 1 Stel basic chat client en functie-definities : import java . netto * ; . import java.io. * ; import java.awt * ; . public class chatclient breidt Frame implementeert Runnable { openbare chatclient ( String titel , Inputlijn i , OutputStream o) { } public void run ( ) { } public void sendMessage (String msg ) { } } kopen van 2 Set up basic client en draad luisteraar als de klasse constructor . Deze constructor neemt een input ( variabele " i " ) en de output stroom ( variabele " o " ) , zet ze om in gebufferde data streams en begint een luisterend thread te wachten voor berichten : //chatclient klasse variablesprotected DataInputStream i ; beschermde DataOutputStream o ; beschermde Thread luisteraar ; openbare chatclient ( Inputlijn i , OutputStream o) { this.i = new DataInputStream (nieuw BufferedInputStream ( i ) ) this.o = new DataOutputStream (nieuw BufferedOutputStream ( o ) ) ; listener = new thread ( this); listener.start ( ) ; } 3 Definieer de " run " -methode , die wordt uitgevoerd wanneer de luisteraar draad begint . Deze methode controleert de ingang datastroom , voegt elke binnenkomende gegevens naar de " ontvangen " string en eindigt wanneer de verbinding wordt gesloten . Public void run ( ) { String ontvangen = new String ( ) ; try { while (true ) { String inkomende = i.readUTF ( ) ; ontving + = ( lijn + " \\ n " ) ; } } catch ( IOException e ) { e.printStackTrace ( ) ; } } 4 Definieer een functie " sendMessage " , die gegevens over de uitvoer -verbinding in de vorm van een string zal sturen : public void sendMessage ( String msg ) { o.writeUTF ( msg ) ; o.flush ( ) ;} catch ( IOException ex ) { ex.printStackTrace ( ) ; listener.stop ( ) ; } }
|