亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Java > 正文

java實現簡單聊天室單人版

2024-07-14 08:41:45
字體:
來源:轉載
供稿:網友

本文實例為大家分享了java實現簡單聊天室的具體代碼,供大家參考,具體內容如下

先整理下思路: 

1.創建一個通信服務端,傳入端口號和相關的流后等待客戶端連接,并初始化圖形界面。 
2.創建一個JFrame,用于寫出聊天的界面,這里界面名稱由其他類傳入。 
3.把客戶端創建的方法寫進JFrame(當然這里很粗糙的方法) 
4.設置按鈕的監聽事件,發送消息和離線功能 

首先創建一個服務端的類

import java.io.IOException;import java.net.ServerSocket;import java.net.Socket;import com.jero.jframe.ChatSocketJFrame;//創建服務端public class ChatServerSocket{  //構造初始化方法  public ChatServerSocket(String name,int port) throws IOException{    //創建Socket服務連接對象        ServerSocket serverSocket = new ServerSocket(port);    //等待客戶端連接      Socket client = serverSocket.accept();    //初始化聊天界面        try {        new ChatSocketJFrame(name,client);      } catch (Exception e) {        // TODO Auto-generated catch block        e.printStackTrace();      }    //關閉流      serverSocket.close();  }  public static void main(String[] args) throws Exception{    new ChatServerSocket("服務端",8001);//啟動服務端,指定網名和端口  }}
package com.jero.jframe;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.InetAddress;import java.net.Socket;import java.net.UnknownHostException;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.border.EmptyBorder;import com.jero.socket.ChatServerSocket;import javax.swing.JTextPane;import javax.swing.JTextField;import javax.swing.JButton;import javax.swing.JTextArea;public class ChatSocketJFrame extends JFrame implements ActionListener {  private Socket socket;  private String name;  private JButton BT_SEND,BT_LEAVE,BT_LOGIN;  private JTextArea textArea;  private JPanel contentPane;  private JTextField textField;  private PrintWriter cout;  /**   * Launch the application.   * @throws Exception    * @throws IOException    * @throws UnknownHostException    */  public static void main(String[] args) throws UnknownHostException, IOException, Exception {    //實例化界面以及客戶端    new ChatSocketJFrame("客戶端","127.0.0.1",8001);  }  /**   * Create the frame.   */  public ChatSocketJFrame(String name, Socket socket)throws Exception, IOException {    //聊天室界面    super("聊天室"+name+" "+InetAddress.getLocalHost()+" "+socket.getPort());    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    setBounds(100, 100, 733, 519);    this.textArea = new JTextArea();    this.textArea.setEditable(false);    this.getContentPane().add(new JScrollPane(this.textArea));    JPanel panel = new JPanel();    this.getContentPane().add(panel, "South");    this.textField = new JTextField(16);    panel.add(this.textField);    BT_SEND = new JButton("發送");    panel.add(BT_SEND);    BT_SEND.addActionListener(new ActionListener() {      @Override      public void actionPerformed(ActionEvent e) {        // TODO Auto-generated method stub        System.out.println("按鈕已點擊");        cout.println(name+"說: "+textField.getText()+"/n");        textArea.append("我說: "+textField.getText()+"/n");        textField.setText("");      }    });    BT_LEAVE = new JButton("離線");    panel.add(BT_LEAVE);    BT_LEAVE.addActionListener(new ActionListener() {      @Override      public void actionPerformed(ActionEvent e) {        // TODO Auto-generated method stub        textArea.append("我離線");        cout.println(name+"離線/n"+"bye");        BT_LEAVE.setEnabled(false);        BT_SEND.setEnabled(false);      }    });    this.setVisible(true);    //開始創建通信    this.socket = socket;    this.name = name;    //獲得Socket的輸出流并立即刷新    this.cout = new PrintWriter(socket.getOutputStream(),true);    //把網名傳給對方    this.cout.println(name);    //獲得Socket對象的輸入流,創建字符輸入流    BufferedReader buff = new BufferedReader(new InputStreamReader(socket.getInputStream()));    //接受對方的網名    String aline = buff.readLine();    //顯示對方發送的內容    textArea.append("連接"+aline+"成功!!/n");    aline = buff.readLine();    //如果內容不為空并且對方不離線,則相互傳送消息    while(aline!=null&&!aline.equals("bye")){      textArea.append(aline+"/r/n");      aline = buff.readLine();    }    //當對方離線時,關閉所有的流    buff.close();    cout.close();    socket.close();    //把按鈕設置為不可操作    BT_SEND.setEnabled(false);    BT_LEAVE.setEnabled(false);  }  /**   * @wbp.parser.constructor   */  public ChatSocketJFrame(String name,String host,int port) throws UnknownHostException, IOException, Exception{    //創建客戶端    this(name,new Socket(host,port));  }  @Override  public void actionPerformed(ActionEvent e) {    // TODO Auto-generated method stub    //可以把動作監聽寫進此函數,這個就不演示了  }}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。 


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲理论电影网| 成人黄色短视频在线观看| 国产午夜精品全部视频播放| 国产视频在线观看一区二区| 992tv在线成人免费观看| 97在线精品国自产拍中文| 成人免费网站在线看| 成人做爽爽免费视频| 亚洲天堂日韩电影| 欧美国产精品日韩| 国产精品青青在线观看爽香蕉| 久久最新资源网| 51午夜精品视频| 国产综合福利在线| 国产精品福利在线| www.xxxx欧美| 亚洲一区二区免费| 亚洲国产精品va在线看黑人| 国产亚洲一级高清| 国产精品黄页免费高清在线观看| 国产一区二区三区四区福利| 精品欧美国产一区二区三区| 精品国产欧美成人夜夜嗨| 亚洲乱码一区av黑人高潮| 国产偷国产偷亚洲清高网站| 亚洲天堂网在线观看| 亚洲黄色av女优在线观看| 久久久久久久影视| 色琪琪综合男人的天堂aⅴ视频| 全亚洲最色的网站在线观看| 国产日本欧美一区二区三区| 亚洲女人天堂色在线7777| 一二美女精品欧洲| 91av视频在线播放| 国产亚洲欧洲高清一区| 亚洲天天在线日亚洲洲精| 中文日韩在线视频| 久久久亚洲国产天美传媒修理工| 色婷婷综合成人| 欧美最猛黑人xxxx黑人猛叫黄| 欧美性受xxxx黑人猛交| 欧美日韩一区免费| 国产精品丝袜一区二区三区| 成人欧美在线观看| 国内精品久久久久伊人av| 91精品国产高清自在线| 91在线观看免费观看| 久久的精品视频| 久久精品亚洲国产| 国产91精品不卡视频| 97avcom| 久久6免费高清热精品| 欧美激情a∨在线视频播放| 欧美精品久久久久a| 久久精彩免费视频| 日韩av网站导航| 欧美美最猛性xxxxxx| 国产午夜精品一区二区三区| 欧美性感美女h网站在线观看免费| 欧美一级bbbbb性bbbb喷潮片| 亚洲欧美日韩天堂一区二区| 欧美激情亚洲自拍| 日韩精品福利网站| 国产欧美精品一区二区| 欧美人交a欧美精品| 俺去亚洲欧洲欧美日韩| 一区二区三区www| 一区二区亚洲欧洲国产日韩| 欧美日韩在线视频首页| 欧美性猛交xxxxx免费看| 亚洲精品福利免费在线观看| 91精品视频播放| 久久久久久久av| 亚洲伦理中文字幕| 亚洲伦理中文字幕| 亚洲性av在线| 日本免费一区二区三区视频观看| 日韩经典一区二区三区| 久久久久久国产精品久久| 国产精品久久久久久av下载红粉| 免费不卡欧美自拍视频| 久久99国产精品久久久久久久久| 日韩中文字幕视频在线| 精品亚洲一区二区三区| 亚洲电影免费观看高清| 亚洲国产日韩欧美综合久久| 亚洲色图激情小说| 2019中文字幕在线| 久久综合电影一区| 日韩免费在线视频| 欧美—级a级欧美特级ar全黄| 欧美成人免费小视频| 97超碰蝌蚪网人人做人人爽| 国产精品欧美激情在线播放| 久久在线精品视频| 欧美综合在线第二页| 理论片在线不卡免费观看| 欧美亚洲另类视频| 亚洲自拍偷拍视频| 久久久久久国产免费| 国产精品第2页| 国产精品自拍小视频| 国产精品爽爽爽爽爽爽在线观看| 亚洲综合在线做性| 日韩激情av在线播放| 亚洲夜晚福利在线观看| 欧美大片免费观看| 欧美午夜视频一区二区| 日韩日本欧美亚洲| 一区二区三区视频免费在线观看| 国产精品18久久久久久首页狼| 精品国产乱码久久久久久虫虫漫画| 国内揄拍国内精品少妇国语| 精品久久久精品| 97国产精品久久| 色综合久综合久久综合久鬼88| 欧美黑人xxxx| 日韩在线视频线视频免费网站| 亚洲已满18点击进入在线看片| 国产69精品久久久久久| 成人网中文字幕| 亚洲一区精品电影| 都市激情亚洲色图| 日韩视频免费大全中文字幕| 正在播放欧美一区| 91久久国产精品91久久性色| 亚洲跨种族黑人xxx| 日韩成人在线网站| 亚洲一区二区精品| 欧美成人免费va影院高清| 最新日韩中文字幕| 色噜噜久久综合伊人一本| 国产精品成av人在线视午夜片| 亚洲欧美国产视频| 亚洲高清在线观看| 日韩欧美在线播放| 高清日韩电视剧大全免费播放在线观看| 国产精品揄拍一区二区| 美女精品久久久| 欧美韩国理论所午夜片917电影| 欧美理论电影网| 日韩av大片免费看| 亚洲精品国产suv| 91av国产在线| 日韩成人在线电影网| 一区二区三区精品99久久| 日韩av在线免费观看一区| 成人妇女免费播放久久久| 国产成人av在线播放| 亚洲欧洲自拍偷拍| 日韩精品福利在线| 久久精品亚洲一区| 国产日韩欧美视频在线| 国产欧美精品在线| 日韩精品黄色网| 日韩美女av在线| 日本精品久久中文字幕佐佐木| 亚洲综合成人婷婷小说| 91亚洲永久免费精品| 国产免费亚洲高清| 中文字幕国产亚洲2019| 久久久久久久91| 欧美贵妇videos办公室| 欧洲s码亚洲m码精品一区|