Dieser Artikel hat ein einfaches Chat -Tool für Sie, ich hoffe, es gefällt Ihnen.
Der Code läuft wie in der Figur gezeigt und sieht ziemlich gut aus
Serverseite
Paket qiu; import Java.awt.BorderLayout; Import Java.awt.event.ActionEvent; Import Java.awt.event.ActionListener; Import Java.awt.print.printable; Import Java.io.io.buffenreader; java.net.serversocket; import java.net.socket; import Java.util.calendar; import Javax.swing.jbutton; import Javax.swing.jframe; import Javax.swing.jpanel; Import Javax.swing.jscrollpane; Javax. javax.swing.jtextfield;/*** Server für einfache Chat-Software**/public class myServer erweitert JFrame implementiert actionListener {jtextarea jtextarea = null; // Single-Line-Bereich, der zur Anzeige von einfachem Text Jtextfield jtextfield = null; // Es kann erlischt werden können, dass einzelne einzelne text text text text text text text text text text text text text text text text text tecton tecton tecton tecton = null; Jpanel jpanel = null; JScrollPane JScrollpane = NULL; // Informationen an den Client-Objekt-Printwriter-Printwriter senden JTextArea (); JTextField = New JTextField (20); sendButton = new Jbutton ("send"); sendButton.addactionListener (this); sendButton.setActActionCommand ("send"); jScrollPane = new JScrollPane (jTextArea); jpanel = new jpanel (); jpanel.add (jTextfield); // Fügen Sie das Bearbeitungsfeld jpanel.add (sendButton); // Fügen Sie das Layout der beiden Panels This.add hinzu (jScrollpane, BorderLayout.Center) hinzu; this.add (jpanel, borderLayout.South); this.setsize (400.300); this.settitle ("Chat Server"); this.setDefaultCloseOperation (jframe.exit_on_close); // Setzen Sie die Beenden -Schaltfläche this.setVisible (true); this.setResizable (true); // Folgendes ist die Konstruktion des Socket -Servers, den {// der Server ServerSocket SS = New ServerSocket (9988) hört. // Warten darauf, dass der Client Socket Socket = ss.Accept () verbindet; // den Datenstrom vom Client BufferedReader BR = New BufferedReader (neuer InputStreamReader (Socket.GetInputStream ()) erhalten; printwriter = neuer printwriter (socket.getOutputStream (), true); // Lesen Sie die von der Client gesendeten Informationen, während (true) {String info = br.readline (); JTextArea.Append ("Client"+GetTime ()+"/r/n"+info+"/r/n"); }} catch (ioException e) {// Todo automatisch generierter Fangblock E. printstacktrace (); }}/*** wurde verwendet, um die aktuelle Zeit zu erhalten. int stündel = ceg (calendar.hour_of_day); // Holen Sie sich die Stunde int minute = cget (calendar.minute); int Second = C.Get (Kalender.Second); Rückkehrstunde+":"+Minute+":"+Sekunde; }/*** Aufgerufen, wenn die Schaltfläche klickt*/@oversidepublic void actionPerformed (actionEvent e) {// Todo auto-generierter Methode Stub // Anruf if (E.GetactactionCommand (). Equals ("Senden") {// den vom Server in jtextField an das Client-String-Info = jtexfield.get.get.get.get.get.get.get.GIETTELD.GETTELD.GETTELD.GETTELD.GETTELD.GETTELD.GETTELD.GETTELD.GETTELT (). jTextArea.Append ("Server"+GetTime ()+"/r/n"+info+"/r/n"); printwriter.println (info); // KOSTENLAUS -Inhalte jTEXTFIELD.SetText ("") eindeutig senden; }}}Kunde
Paket qiu; import Java.awt.BorderLayout; Import Java.awt.event.ActionEvent; Import Java.awt.event.ActionListener; Import Java.io.BufferedReader; Import Java.io.io.ioException; ImportstreamReader; Importstream.Socket. java.net.unnownhostException; import Java.util.calendar; import Javax.swing.jbutton; Import Javax.swing.jframe; import Javax.swing.jpanel; importieren javax.swing.jscrollpane; javax. */public class myclient erweitert jframe implementiert actionListener {jtextarea jtextarea = null; JTextField jTextField = null; Jpanel jpanel = null; JScrollPane JScrollpane = NULL; Jbutton sendbutton = null; Printwrinker printwriter = null;/*** Die Hauptfunktion des Clients**/public static void main (String [] args) {// Todo automatisch generierter Methode Stub New MyClient ();}/*** Der Client-Konstruktor wird verwendet, um**/public myclient () {// Gui initialization jtexa = New jtexa () (). JTextField = New JTextField (20); sendButton = new Jbutton ("send"); sendButton.addactionListener (this); sendButton.setActActionCommand ("send"); jScrollPane = new JScrollPane (jTextArea); jpanel = new jpanel (); jpanel.add (jtextfield); jpanel.add (sendbutton); this.add (jScrollpane, BorderLayout.Center); this.add (jpanel, borderLayout.South); this.setSize (400, 300); this.settitle ("Chat -Client"); this.setDefaultCloseOperation (jframe.exit_on_close); this.setvisible (true); this.setResizable (true); // Socket -Kommunikationscode try {Socket s = neuer Socket ("127.0.0.1", 9988); BufferedReader BR = neuer BufferedReader (neuer InputStreamReader (S.GetInputStream ())); printwriter = neuer printwriter (S.GetOutputStream (), true); while (true) {// kontinuierlich die von der Server string string = br.readline () gesendeten Informationen lesen; jTextArea.Append ("Server"+GetTime ()+"/r/n"+string+"/r/n"); }} catch (unbekannteHostException e) {// Todo automatisch generierter Block E. printstacktrace (); } catch (ioException e) {// Todo automatisch generierter Catch-Block e.printstacktrace (); }}/*** wurde verwendet, um die aktuelle Zeit zu erhalten. int stündel = ceg (calendar.hour_of_day); // Holen Sie sich die Stunde int minute = cget (calendar.minute); int Second = C.Get (Kalender.Second); Rückkehrstunde+":"+Minute+":"+Sekunde; }/*** Aufgerufen, wenn die Schaltfläche klickt*/@oversidePublic void actionPerformed (actionEvent e) {// Todo auto-generierter Methode Stub if (sendButton.getActionCommand (). Equals ("Senden") {String Info = jtextfield.getText (); // Senden Sie die vom Client gesendeten Informationen an den Server jTextArea.Append ("Client"+GetTime ()+"/r/n"+info+"/r/n"); printwriter.println (info); jTextfield.setText (""); }}} Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.