[Java] lập trình mạng server kết nối với client qua socket

Thảo luận trong 'Java' bắt đầu bởi Nguyễn Thành Đạt It, 15/8/17.

  1. Nguyễn Thành Đạt It

    Nguyễn Thành Đạt It Guest Registered

    Tham gia ngày:
    28/9/16
    Bài viết:
    435
    Đã được thích:
    4
    Điểm thành tích:
    18
    Giới tính:
    Nam
    Nghề nghiệp:
    N/A
    Nơi ở:
    N/A
    Web:
    N/A


    Các bước tạo form của server và client

    Tạo server
    1.PNG

    2.PNG

    3.PNG
    Chọn Text Area làm khung chat
    chọn text area làm khung.PNG
    Chọn button làm nút gửi
    tạo button ghi là send.PNG
    Chọn Text Field làm ô chát
    tạo text field.PNG

    Xóa tên ô chát
    xóa text field.PNG
    Đổi tên button thành send

    đổi tên button thành send nhé.PNG

    Đổi tên khung thành msg_Area
    đổi tên cho khung là msg_Area.PNG
    Đổi tên button Send thành msg_Send

    đổi tên button send là msg_Send.PNG
    Đổi tên Text Field thành msg_Text

    đổi tên text file là msg_Text.PNG
    Ấn vào khung rồi làm như hình vẽ

    ấn vào khung rồi làm như hình vẽ.PNG

    Tạo client

    tạo client thiết kế y như server.PNG
    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);
    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{
    = 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ả :

    1. chạy server trước rồi chạy client
    ok.png
    2. server đã kết nối và chat được với client

    upload_2017-8-16_11-6-30.png

    upload_2017-8-16_11-7-0.png

     

    Bình Luận Bằng Facebook

    data-href="https://cnttqn.com/threads/java-lap-trinh-mang-server-ket-noi-voi-client-qua-socket.4926.html"