تشارك هذه المقالة أداة دردشة بسيطة من المقبس ، أتمنى أن تنال إعجابك.
يتم تشغيل الرمز كما هو موضح في الشكل ويبدو جيدًا
جانب الخادم
package qiu ؛ import java.awt.borderlayout ؛ import java.awt.event.actionevent ؛ import java.awt.action. java.net.serversocket ؛ استيراد java.net.socket ؛ استيراد java.util.calendar ؛ استيراد javax.swing.jbutton ؛ استيراد javax.swing.jframe ؛ استيراد javax.swing.jpanel ؛ استيراد javax.swing.jscrollpane ؛ javax.swing.jtextfield ؛/*** خادم لبرنامج الدردشة البسيطة**/الفئة العامة myserver يمتد JFrame تنفيذ ActionListener {jtextarea jtextarea = null ؛ // منطقة خط واحد تستخدم لعرض نص jtextfield jtextfield = null ؛ jpanel jpanel = null ؛ JScrollpane jScrollPane = null ؛ // إرسال معلومات إلى كائن العميل printwriter printWriter = null ؛/*** الوظيفة الرئيسية على الخادم**//عام ثابت الفراغ الأساسي الرئيسي (سلسلة [] args) {// todo method method myserver new MyServer () ؛}/** JTextarea () ؛ JTextField = New JTextfield (20) ؛ SendButton = New JButton ("Send") ؛ SendButton.AddActionListener (هذا) ؛ SendButton.SetActionCommand ("إرسال") ؛ 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 (400300) ؛ this.settitle ("خادم الدردشة") ؛ this.setDefaultCloseOperation (jframe.exit_on_close) ؛ // قم بتعيين زر الخروج this.setVisible (true) ؛ this.setResible (صحيح) ؛ // فيما يلي بناء خادم المقبس ، حاول {// الخادم يستمع serversocket ss = new serversocket (9988) ؛ // في انتظار العميل لتوصيل مقبس المقبس = ss.accept () ؛ // احصل على دفق البيانات المرسلة من قبل العميل Bufferreader BR = جديد BufferedReader (New InputStreamReader (Socket.getInputStream ())) ؛ printWriter = new printWriter (socket.getOutputStream () ، true) ؛ // اقرأ المعلومات المرسلة من العميل بينما (true) {string info = br.readline () ؛ jtextarea.append ("client"+getTime ()+"/r/n"+info+"/r/n") ؛ }} catch (ioException e) {// todo catch catch e.printstacktrace () ؛ }}/*** تستخدم للحصول على الوقت الحالي* time current time*/public string getTime () {// calendar c = calendar.getInstance () ؛ int ساعة = c.get (calendar.hour_of_day) ؛ // الحصول على ساعة int دقيقة = c.get (calendar.minute) ؛ int second = c.get (calendar.Second) ؛ ساعة العودة+":"+دقيقة+":"+ثانية ؛ }/*** استدعاء عند النقر فوق الزر*/@@Overridepublic void ActionPerformed (ActionEvent e) {// todo method method method tuto coll // call if ( jtextarea.append ("server"+getTime ()+"/r/n"+info+"/r/n") ؛ printWriter.println (info) ؛ // إرسال مربع بوضوح content jtextfield.settext ("") ؛ }}}عميل
package qiu ؛ import java.awt.borderlayout ؛ import java.awt.event.actionevent ؛ import java.awt.action java.net.unknownhostexception ؛ استيراد java.util.calendar ؛ استيراد javax.swing.jbutton ؛ استيراد javax.swing.jframe ؛ استيراد javax.swing.jpanel ؛ */الفئة العامة myClient يمتد JFrame تنفذ ActionListener {jtextarea jtextarea = null ؛ JTextField JTextField = null ؛ jpanel jpanel = null ؛ JScrollpane jScrollPane = null ؛ jbutton sendbutton = null ؛ printWriter printWriter = null ؛/*** الوظيفة الرئيسية للعميل**/public static void main (string [] args) {// todo method method method method myclient () ؛}/*** يتم استخدام منشئ العميل لتهيئة**/public myClient () {// gui jtextarea = new jtextarea () ؛ JTextField = New JTextfield (20) ؛ SendButton = New JButton ("Send") ؛ SendButton.AddActionListener (هذا) ؛ SendButton.SetActionCommand ("إرسال") ؛ 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 ("عميل الدردشة") ؛ this.setDefaultCloseOperation (jframe.exit_on_close) ؛ this.setVisible (صحيح) ؛ this.setResible (صحيح) ؛ // رمز اتصال المقبس Try {Socket S = New Socket ("127.0.0.1" ، 9988) ؛ BufferedReader BR = جديد BufferEdReader (New InputStreamReader (S.GetInputStream ())) ؛ printWriter = new PrintWriter (S.GetOutputStream () ، true) ؛ بينما (صحيح) {// اقرأ باستمرار المعلومات المرسلة بواسطة سلسلة Server String = Br.ReadLine () ؛ jtextarea.append ("server"+getTime ()+"/r/n"+string+"/r/n") ؛ }} catch (unknownhostexception e) {// todo catch catch e.printstacktrace () ؛ } catch (ioException e) {// todo acto catch block e.printstacktrace () ؛ }}/*** تستخدم للحصول على الوقت الحالي* @RETURN الوقت الحالي*/السلسلة العامة getTime () {// يمكن تعديل كل مجال زمني فردي C = CALENDAR.GETINSTANCE () ؛ int ساعة = c.get (calendar.hour_of_day) ؛ // الحصول على ساعة int دقيقة = c.get (calendar.minute) ؛ int second = c.get (calendar.Second) ؛ ساعة العودة+":"+دقيقة+":"+ثانية ؛ }/*** استدعاء عند النقر فوق الزر*/@overridepublic actionperformed (ActionEvent e) {// todo method method method tuto if (sendButton.getActionCommand (). equals ("send")) {string info = jtextfield.gettext // أرسل المعلومات التي أرسلها العميل إلى server jtextarea.append ("client"+getTime ()+"/r/n"+info+"/r/n") ؛ printWriter.println (info) ؛ jtextfield.settext ("") ؛ }}} ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.