中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用javasocket實現一個聊天小程序

發布時間:2022-04-08 10:17:23 來源:億速云 閱讀:174 作者:iii 欄目:編程語言

這篇文章主要介紹“如何使用javasocket實現一個聊天小程序”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“如何使用javasocket實現一個聊天小程序”文章能幫助大家解決問題。

服務器

package demo04;import java.awt.BorderLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.io.DataInputStream;import java.io.DataOutputStream;import java.net.ServerSocket;import java.net.Socket;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTextArea;import javax.swing.JTextField;import javax.swing.ScrollPaneConstants;public class ownServer { public static void main(String[] args) { // TODO Auto-generated method stub new Server().launch(); }}class Server{ JFrame frame; JTextArea taArea; JTextField tfField; JButton sbButton; DataInputStream read ; DataOutputStream write; ServerSocket scServerSocket;  Socket socket;  public void launch() { CreateUI(); CreateNetWork(); new ServerWrite().start(); new ServerRead().start(); }  public void CreateUI() { frame = new JFrame("MM Server"); JPanel Panle = new JPanel(); taArea = new JTextArea(15,25); taArea.setLineWrap(true); taArea.setWrapStyleWord(true); taArea.setEditable(true); JScrollPane qScroller=newJScrollPane(taArea);  qScroller.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);          qScroller.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS); tfField = new JTextField(20); sbButton = new JButton("發送"); Panle.add(qScroller); Panle.add(tfField); Panle.add(sbButton);     frame.getContentPane().add(BorderLayout.CENTER,Panle);    frame.setSize(400,400);    frame.setVisible(true);  } public void close() { try {  write.close();  read.close();  socket.close();  scServerSocket.close(); } catch (Exception e) {  System.exit(-1); } }  public void CreateNetWork() {    try {   scServerSocket =new ServerSocket(7780);  socket= scServerSocket.accept();  read = new DataInputStream(socket.getInputStream());  write = new DataOutputStream(socket.getOutputStream());    System.out.print("網絡連接");  } catch (Exception e) {  // TODO: handle exception  e.printStackTrace(); }  } class ServerRead extends Thread{ public void run() {   while (true) {   try {   String message = read.readUTF();   taArea.append("對方:"+message+ "\n");  } catch (Exception e1) {  // TODO: handle exception  JOptionPane.showMessageDialog(taArea, "提示: 服務端已經斷開連接");    //e.printStackTrace();  //System.exit(-1);  return ;  }    } } }class ServerWrite extends Thread{  public void run() {  tfField.addActionListener(new ServerListen());  sbButton.addActionListener(new ServerListen()); } } class ServerListen implements ActionListener{ @Override public void actionPerformed(ActionEvent e) {  try {  String str = tfField.getText();  tfField.setText("");  taArea.append("我: " + str + "\n");  write.writeUTF(str);    } catch (Exception e2) {  // TODO: handle exception  e2.printStackTrace();  } }  } }

客戶端

package demo04;import java.awt.BorderLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.io.DataInputStream;import java.io.DataOutputStream;import java.net.Socket;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTextArea;import javax.swing.JTextField;import javax.swing.ScrollPaneConstants;public class ownClient { public static void main(String[] args) { // TODO Auto-generated method stub new Client().launch(); }}class Client{ JTextArea taArea; JTextField tfField; JButton sbButton; DataInputStream read = null; DataOutputStream write = null; Socket socket; public void launch() { CreateUI(); CreatNetWork(); new ClientRead().start();; new ClientWrite().start();; } public void CreateUI() { JFrame frame = new JFrame("MM Client"); JPanel Panle = new JPanel(); taArea = new JTextArea(15,25); taArea.setLineWrap(true); taArea.setWrapStyleWord(true); taArea.setEditable(true); JScrollPane qScroller = new JScrollPane(taArea); qScroller.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); qScroller.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);  tfField = new JTextField(20); sbButton = new JButton("發送");  Panle.add(qScroller); Panle.add(tfField); Panle.add(sbButton);       frame.getContentPane().add(BorderLayout.CENTER,Panle);    frame.setSize(400,400);    frame.setVisible(true); } public void CreatNetWork() { // TODO Auto-generated method stub try {  socket = new Socket("127.0.0.1",7780);  write = new DataOutputStream(socket.getOutputStream());  read = new DataInputStream(socket.getInputStream());  System.out.print("已建立網絡連接"); } catch (Exception e) {  // TODO: handle exception  e.printStackTrace(); } } class ClientRead extends Thread{  public void run() {    while (true) {   try {   String message= read.readUTF();   taArea.append("對方:"+message+ "\n");    } catch (Exception e1) {  // TODO: handle exception  JOptionPane.showMessageDialog(taArea, "提示: 客戶端已經斷開連接");    //e.printStackTrace();  //System.exit(-1);  return ;  }     } } }  class ClientWrite extends Thread{  public void run() {    tfField.addActionListener(new ClientListen());  sbButton.addActionListener(new ClientListen());  } }  class ClientListen implements ActionListener{ @Override public void actionPerformed(ActionEvent e) {  try {    String str = tfField.getText();  tfField.setText("");  taArea.append("我: " + str + "\n");  write.writeUTF(str);    } catch (Exception e2) {  // TODO: handle exception  e2.printStackTrace();  } }  } }

關于“如何使用javasocket實現一個聊天小程序”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

南阳市| 大庆市| 阿克陶县| 科尔| 孝义市| 垦利县| 定远县| 奉贤区| 内丘县| 宁明县| 广东省| 漾濞| 陆川县| 孙吴县| 普安县| 岱山县| 宜川县| 宁武县| 慈利县| 白沙| 修水县| 冕宁县| 河东区| 岑溪市| 新晃| 综艺| 荃湾区| 澳门| 盐池县| 宝清县| 赣榆县| 徐汇区| 监利县| 正蓝旗| 咸丰县| 双流县| 苍梧县| 克东县| 镇原县| 翁源县| 屯门区|