Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk melaksanakan fungsi bilik sembang mudah menggunakan MySQL dan Java

Bagaimana untuk melaksanakan fungsi bilik sembang mudah menggunakan MySQL dan Java

王林
王林asal
2023-09-21 17:13:421481semak imbas

Bagaimana untuk melaksanakan fungsi bilik sembang mudah menggunakan MySQL dan Java

Cara melaksanakan fungsi bilik sembang ringkas menggunakan MySQL dan Java

Pengenalan:
Dengan kelaziman media sosial hari ini, orang ramai semakin bergantung pada sembang dalam talian untuk berkomunikasi dan berkongsi maklumat. Bagaimana untuk melaksanakan fungsi bilik sembang mudah menggunakan MySQL dan Java adalah projek yang sangat menarik dan praktikal. Artikel ini akan memperkenalkan cara menggunakan MySQL dan Java untuk melaksanakan fungsi ini, dan menyediakan contoh kod khusus.

1. Bina pangkalan data
Pertama, kita perlu mencipta pangkalan data dalam MySQL untuk menyimpan maklumat berkaitan bilik sembang. Anda boleh menggunakan pernyataan SQL berikut untuk mencipta pangkalan data dan jadual.

CIPTA ruang sembang PANGKALAN DATA;

GUNAKAN bilik sembang;

CIPTA pengguna JADUAL (
id INT PRIMARY KEY AUTO_INCREMENT,
nama pengguna VARCHAR(50) UNIK,
TABLE MASJID(50)
kata laluan VARCHAR(50);🜎

UTAMA KEY AUTO_INCREMENT,

sender_id INT,
receiver_id INT,
message VARCHAR(200),
timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (sender_id) RUJUKAN pengguna (id)
REFERENCES pengguna (id)
);

Dalam kod di atas, kami mencipta pangkalan data yang dipanggil bilik sembang dan mencipta dua jadual di dalamnya: pengguna dan mesej. Jadual pengguna digunakan untuk menyimpan maklumat pengguna, termasuk id, nama pengguna dan kata laluan. Jadual mesej digunakan untuk menyimpan maklumat mesej, termasuk ID pengirim, ID penerima, kandungan mesej dan cap masa mesej.

2. Tulis kod Java

Seterusnya, kita perlu menggunakan Java untuk melaksanakan fungsi bilik sembang. Mula-mula, kami mencipta kelas yang dipanggil ChatServer untuk mewujudkan sambungan sebelah pelayan dan memproses mesej.


import java.io.*;

import java.net.*;

import java.util.*;

Public Class ChatServer {

private static ArrayList clientOutputStreams;

public 🎎 args) {

  clientOutputStreams = new ArrayList<PrintWriter>();
  try {
     ServerSocket serverSock = new ServerSocket(5000);

     while (true) {
        Socket clientSocket = serverSock.accept();
        PrintWriter writer = new PrintWriter(clientSocket.getOutputStream());
        clientOutputStreams.add(writer);

        Thread t = new Thread(new ClientHandler(clientSocket));
        t.start();
        System.out.println("Got a connection");
     }
  } catch (Exception ex) {
     ex.printStackTrace();
  }

}

public static void tellEveryone(String message) {

  Iterator<PrintWriter> it = clientOutputStreams.iterator();
  while (it.hasNext()) {
     try {
        PrintWriter writer = (PrintWriter) it.next();
        writer.println(message);
        writer.flush();
     } catch (Exception ex) {
        ex.printStackTrace();
     }
  }

}

}

Dalam kod di atas, kami menggunakan kelas ServerSocket untuk mendengar port 5000 dan menggunakan ArrayList untuk menyimpan semua sambungan pelayan Objek PrintWriter klien. Kaedah "tellEveryone" digunakan untuk menghantar mesej kepada semua pelanggan yang disambungkan ke pelayan.

Seterusnya, kami mencipta kelas yang dipanggil ClientHandler untuk mengendalikan mesej pelanggan.

import java.io.*;

import java.net.*;

import java.util.*;


kelas awam ClientHandler melaksanakan Runnable {
pembaca BufferedReader peribadi;

soket Socket peribadi;


SocketSocketpublic Client ) {

  try {
     sock = clientSocket;
     InputStreamReader isReader = new InputStreamReader(sock.getInputStream());
     reader = new BufferedReader(isReader);
  } catch (Exception ex) {
     ex.printStackTrace();
  }

}

public void run() {

  String message;
  try {
     while ((message = reader.readLine()) != null) {
        System.out.println("read " + message);
        ChatServer.tellEveryone(message);
     }
  } catch (Exception ex) {
     ex.printStackTrace();
  }

}

}

Dalam kod di atas, kami menggunakan kelas BufferedReader untuk membaca mesej yang dihantar oleh pelanggan, dan kemudian memanggil kaedah tellEveryone ChatServer ke menghantar mesej kepada semua pelanggan yang disambungkan ke pelayan.

3 Uji fungsi bilik sembang

Akhir sekali, kami menggunakan kelas yang dipanggil ChatClient untuk menguji fungsi bilik sembang.

import java.io.*;
import java.net.*;

import java.awt.*;

import java.awt.event.*;

kelas awam ChatClient {
Private static TextArea messageArea;

private static TextField inputField;

Butang hantar statik peribadi;
penulis PrintWriter statik peribadi;
stokin Soket statik statik peribadi;

utama kekosongan statik awam(String[] args) {

  buildGUI();
  setupNetworking();

} void

{ee

idprivate GUIstatic }

private static void setupNetworking() {

  Frame frame = new Frame("Chat Client");
  messageArea = new TextArea();
  inputField = new TextField();
  sendButton = new Button("Send");

  sendButton.addActionListener(new ActionListener() {
     public void actionPerformed(ActionEvent event) {
        try {
           String message = inputField.getText();
           writer.println(message);
           writer.flush();
           inputField.setText("");
        } catch (Exception ex) {
           ex.printStackTrace();
        }
     }
  });

  frame.add(messageArea, BorderLayout.CENTER);
  frame.add(inputField, BorderLayout.SOUTH);
  frame.add(sendButton, BorderLayout.EAST);
  frame.setSize(400, 300);
  frame.setVisible(true);

}

private statik class IncomingReader implements Runnable {

  try {
     sock = new Socket("localhost", 5000);
     InputStreamReader isReader = new InputStreamReader(sock.getInputStream());
     BufferedReader reader = new BufferedReader(isReader);
     writer = new PrintWriter(sock.getOutputStream());
     Thread readerThread = new Thread(new IncomingReader(reader));
     readerThread.start();
  } catch (Exception ex) {
     ex.printStackTrace();
  }

");

  private BufferedReader reader;

  public IncomingReader(BufferedReader reader) {
     this.reader = reader;
  }

  public void run() {
     String message;
     try {
        while ((message = reader.readLine()) != null) {
           System.out.println("incoming " + message);
           messageArea.append(message + "

}

private static class IncomingReader implements Runnable {

        }
     } catch (Exception ex) {
        ex.printStackTrace();
     }
  }

");

rrreee

}

di atas, kita berada dalam kod AW di atas

}🎎 sembang Antara muka grafik pelanggan Hantar mesej dengan mengklik butang hantar, dan kemudian gunakan kelas Socket untuk mewujudkan sambungan dengan pelayan dan menghantar dan menerima mesej

Kesimpulan: 🎜Melalui langkah di atas, kami telah berjaya melaksanakan. mesej ringkas menggunakan MySQL dan fungsi bilik Sembang Java Gunakan pangkalan data untuk menyimpan maklumat dan mesej pengguna, mengendalikan komunikasi pelayan-pelanggan melalui kod Java, dan menggunakan antara muka grafik untuk menyediakan antara muka sembang yang mesra pengguna berguna kepada pembaca yang ingin belajar dan mengamalkan fungsi bilik sembang 🎜

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan fungsi bilik sembang mudah menggunakan MySQL dan Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn