Как да създадете приложение за чат с помощта на гнезда в Java

Блог

Как да създадете приложение за чат с помощта на гнезда в Java

**Въведение **

В този урок ще видим приложение за чат в Java, което е друг модул на извикване на отдалечена процедура. Ще се занимаваме с гнездата и неговия параметър, за да работим с нашето изискване. В продължение на поколения извикването на отдалечена процедура се използва за създаване на система за предаване на съобщения във всяка среда. Това може да бъде разпределена система, самостоятелна или всяка среда на клиентски сървър.

За подробности и кратко обяснение на извикванията на отдалечени процедури можете да прочетете тази статия, за да разберете по доста приличен начин

Предпоставка

  1. Инсталирана Java
  2. NetBeans SDK

След като NetBeans е инсталиран, трябва да направите Java приложение. Наречете го като - приложение за чат. Това ще създаде проект за приложение за чат във вашата IDE. Също така ще бъде създаден файл main.java, който можете да изтриете, тъй като не е задължителен.

Това е заглавието на изображението

След като приключите с това, щракнете с десния бутон върху проекта-> Ново-> Изберете формуляр JFrame. Трябва да направите две формуляри Jframe, една за клиент и една за сървър. Jframe се използва за създаване на дизайн на вашето приложение. има проста конфигурация, която е подобна на ASPX страници. Също така, той има прилична кутия с инструменти с функционалност за плъзгане и пускане. Сега създайте два Jframe и ги кръстете Client.java и Server.java. След това дизайнът е даден по -долу.

Client.java

Трябва да плъзнете и пуснете тези контроли - TextArea, TextField, Button и Label. TextArea се използва за преглед на входящите съобщения, а TextField се използва за писане на съобщението.

Server.java

Сега, когато кодиращата част е там. Отворете client.java и Server.java. Въведете кодовата част.

Client.java

package chatapplication; import java.io.DataInputStream; import java.io.DataOutputStream; import java.net.Socket; public class client extends javax.swing.JFrame { static Socket sckt; static DataInputStream dtinpt; static DataOutputStream dtotpt; public client() { initComponents(); } @SuppressWarnings('unchecked') private void initComponents() {} private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { try { String msgout = ''; msgout = jTextField1.getText().trim(); dtotpt.writeUTF(msgout); } catch (Exception e) {} } public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new client().setVisible(true); } }); try { sckt = new Socket('127.0.0.1', 1201); dtinpt = new DataInputStream(sckt.getInputStream()); dtotpt = new DataOutputStream(sckt.getOutputStream()); String msgin = ''; while (!msgin.equals('Exit')) { msgin = dtinpt.readUTF(); jTextArea1.setText(jTextArea1.getText().trim() + ' Server:' + msgin); } } catch (Exception e) {} } private javax.swing.JButton jButton1; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JScrollPane jScrollPane1; private static javax.swing.JTextArea jTextArea1; private javax.swing.JTextField jTextField1; }

** Сървър. Java **

package chatapplication; 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 ssckt; static Socket sckt; static DataInputStream dtinpt; static DataOutputStream dtotpt; public Server() { initComponents(); } @SuppressWarnings('unchecked') private void initComponents() {} private void btnsendActionPerformed(java.awt.event.ActionEvent evt) { try { String msgout = ''; msgout = txtbxfield.getText().trim(); dtotpt.writeUTF(msgout); } catch (Exception e) {} } public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new Server().setVisible(true); } }); String msgin = ''; try { ssckt = new ServerSocket(1201); sckt = ssckt.accept(); dtinpt = new DataInputStream(sckt.getInputStream()); dtotpt = new DataOutputStream(sckt.getOutputStream()); while (!msgin.equals('exit')) { msgin = dtinpt.readUTF(); txtbxarea.setText(txtbxarea.getText().trim() + ' Client:' + msgin); } } catch (Exception e) {} } private javax.swing.JButton btnsend; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JScrollPane jScrollPane1; private static javax.swing.JTextArea txtbxarea; private javax.swing.JTextField txtbxfield; }

Надявам се че го харесваш. Благодаря ви за четенето.

#java #сокети #програмиране