Các bước tạo form của server và client Click để xem: Xem Tạo server Chọn Text Area làm khung chat Chọn button làm nút gửi Chọn Text Field làm ô chát Xóa tên ô chát Đổi tên button thành send Đổi tên khung thành msg_Area Đổi tên button Send thành msg_Send Đổi tên Text Field thành msg_Text Ấn vào khung rồi làm như hình vẽ Tạo client các bước thiết kế sau như server. Server: CODE: Select All package socket;import java.io.DataInputStream;import java.io.DataOutputStream;import java.net.ServerSocket;import java.net.Socket;public class server extends javax.swing.JFrame {static ServerSocket ss;static Socket s;static DataInputStream din;static DataOutputStream dout;public server() {initComponents();}private void msg_SendActionPerformed(java.awt.event.ActionEvent evt) { try{String msgout = "";msgout = msg_Text.getText().trim();dout.writeUTF(msgout);}catch(Exception e){}} private void msg_TextActionPerformed(java.awt.event.ActionEvent evt) { try { String msgout =""; msg_Text.setText(""); // Xóa trường nhập liệu dout.writeUTF(msgout); } catch (Exception r) { // Xử lý ngoại lệ khi xảy ra lỗi } } java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new server().setVisible(true); } });try{ String msgin = "";ss = new ServerSocket(1201);s = ss.accept();din = new DataInputStream (s.getInputStream());dout = new DataOutputStream(s.getOutputStream());while (!msgin.equals("exit")){msgin = din.readUTF();msg_Area.setText(msg_Area.getText().trim()+"\n server: \t"+msgin);}} catch(Exception e){}} Client: CODE: Select All package socket;import java.io.DataInputStream;import java.io.DataOutputStream;import java.net.Socket;public class client extends javax.swing.JFrame {static java.net.Socket s;static DataInputStream din;static DataOutputStream dout;public client() {initComponents();}private void msg_SendActionPerformed(java.awt.event.ActionEvent evt) { try{String msgout ="";msgout = msg_Text.getText().trim();dout.writeUTF(msgout);}catch(Exception e){} }private void msg_textActionPerformed(java.awt.event.ActionEvent evt) { try { String msgout =""; msg_text.setText(""); // Xóa trường nhập liệu dout.writeUTF(msgout); } catch (Exception r) { // Xử lý ngoại lệ khi xảy ra lỗi}} java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new client().setVisible(true);} });String msgin = "";try{s = new Socket("127.0.0.1",1201);din = new DataInputStream (s.getInputStream());dout = new DataOutputStream(s.getOutputStream());while (!msgin.equals("exit")){msgin = din.readUTF();msg_Area.setText(msg_Area.getText().trim()+"\n client: \t"+msgin);}} catch(Exception e){}} Kết quả : chạy server trước rồi chạy client 2. server đã kết nối và chat được với client