日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Java網絡編程實現多線程聊天

瀏覽:200日期:2022-08-09 11:53:41

本文實例為大家分享了Java網絡編程實現多線程聊天的具體代碼,供大家參考,具體內容如下

聊天程序如果是單線程,會導致沒人只能說一句,并且說了以后,必須等到另一個人的回復,才能說第二句。收發都在主線程中,不能同時進行。

解決方法:

將收發放到兩個不同的線程

1. SendThread 發送消息線程2. RecieveThread 接受消息線程3. Server一旦接受到連接,就啟動收發兩個線程4. Client 一旦建立了連接,就啟動收發兩個線程

多線程聊天

1 SendThread

package socket;import java.io.DataOutputStream;import java.io.IOException;import java.io.OutputStream;import java.net.Socket;import java.util.Scanner;public class SendThread extends Thread { private Socket s; public SendThread(Socket s) {this.s = s; } @Override public void run() {try { OutputStream os = s.getOutputStream(); DataOutputStream dos = new DataOutputStream(os); while(true){Scanner sc = new Scanner(System.in);String str = sc.next();dos.writeUTF(str); }} catch (IOException e) { e.printStackTrace();} }}

2 RecieveThread

package socket;import java.io.DataInputStream;import java.io.IOException;import java.io.InputStream;import java.net.Socket;public class RecieveThread extends Thread { private Socket s; public RecieveThread(Socket s) {this.s = s; } @Override public void run() {InputStream is = null;try { is = s.getInputStream(); DataInputStream dis = new DataInputStream(is); while(true){String msg = dis.readUTF();System.out.println(msg); }} catch (IOException e) { e.printStackTrace();} }}

3 Server

package socket;import java.io.IOException;import java.net.ServerSocket;import java.net.Socket;public class Server { public static void main(String[] args) {try { ServerSocket ss = new ServerSocket(8888); System.out.println('監聽端口號:8888'); Socket s = ss.accept(); new SendThread(s).start(); new RecieveThread(s).start();} catch (IOException e) { e.printStackTrace();} }}

4 Client

package socket;import java.io.IOException;import java.net.Socket;import java.net.UnknownHostException;public class Client { public static void main(String[] args) {try { Socket s = new Socket('127.0.0.1', 8888); new SendThread(s).start(); new RecieveThread(s).start();} catch (UnknownHostException e) { e.printStackTrace();} catch (IOException e) { e.printStackTrace();} }}簡單對話框

Server

package socket;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;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.JTextArea;import javax.swing.JTextField;public class GUIServer { public static void main(String[] args) throws Exception {JFrame f = new JFrame();f.setTitle('server');f.setSize(400, 300);f.setLocation(100, 200);f.setLayout(null);JButton b = new JButton('send');b.setBounds(10, 10, 80, 30);f.add(b);final JTextField tf = new JTextField();tf.setBounds(10, 110, 80, 30);f.add(tf);final JTextArea ta = new JTextArea();ta.setBounds(110,10, 200, 300);f.add(ta);f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);f.setVisible(true);ServerSocket ss = new ServerSocket(8888);System.out.println('listenning on port:8888');final Socket s = ss.accept();new Thread() { public void run() {while (true) { try {DataInputStream dis = new DataInputStream(s.getInputStream());String text = dis.readUTF();ta.append(text+'rn'); } catch (Exception e) {e.printStackTrace(); }} }}.start();b.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) {String text = tf.getText();ta.append(text+'rn');try { DataOutputStream dos = new DataOutputStream( s.getOutputStream()); dos.writeUTF(text);} catch (Exception ex) { ex.printStackTrace();} }}); }}

Client

package socket;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.DataInputStream;import java.io.DataOutputStream;import java.net.Socket;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JTextArea;import javax.swing.JTextField;public class GUIClient { public static void main(String[] args) throws Exception {JFrame f = new JFrame();f.setTitle('client');f.setSize(400, 300);f.setLocation(600, 200);f.setLayout(null);JButton b = new JButton('send');b.setBounds(10, 10, 80, 30);f.add(b);final JTextField tf = new JTextField();tf.setBounds(10, 110, 80, 30);f.add(tf);final JTextArea ta = new JTextArea();ta.setBounds(110,10, 200, 300);f.add(ta);f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);f.setVisible(true);final Socket s = new Socket('127.0.0.1', 8888);new Thread() { public void run() {while (true) { try {DataInputStream dis = new DataInputStream(s.getInputStream());String text = dis.readUTF();ta.append(text+'rn'); } catch (Exception e) {e.printStackTrace(); }} }}.start();b.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) {String text = tf.getText();ta.append(text+'rn');try { DataOutputStream dos = new DataOutputStream( s.getOutputStream()); dos.writeUTF(text);} catch (Exception ex) { ex.printStackTrace();} }}); }}

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

標簽: Java
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲视频播放| 免费看精品久久片| 精品九九久久| 日韩在线不卡| 久久精品国产68国产精品亚洲| 亚洲午夜视频| 久热精品在线| 91亚洲精品视频在线观看| 欧美日韩在线精品一区二区三区激情综合 | 欧美 日韩 国产精品免费观看| 欧美一区在线观看视频| 国产亚洲人成a在线v网站| 久久精品福利| 久久久久.com| 爽好多水快深点欧美视频| 亚欧洲精品视频在线观看| 日韩国产欧美在线视频| 成人午夜在线| 中文精品在线| 国产劲爆久久| 欧美亚洲精品在线| 日韩精品成人| 99久久婷婷| 久久精品99国产国产精| 99久久亚洲精品| 在线国产日韩| 欧美好骚综合网| 亚洲精品一级| 伊人久久高清| 日韩视频1区| 日韩在线观看不卡| 日韩欧美中文字幕在线视频| 极品av在线| 色综合视频一区二区三区日韩 | 美美哒免费高清在线观看视频一区二区 | 国产精品22p| 日韩精品永久网址| 在线国产一区| 久久国产免费看| 欧美 日韩 国产一区二区在线视频| 亚洲精品一级二级三级| 国产suv精品一区| 婷婷综合福利| 欧美精选一区二区三区| 国产精品探花在线观看| 欧美日韩一二| 另类综合日韩欧美亚洲| 免费看黄色91| 欧美日韩国产在线观看网站| 美女毛片一区二区三区四区最新中文字幕亚洲| 亚洲免费激情| 日韩大片在线| 国产欧美欧美| 在线观看一区| 黄页网站一区| 五月激情久久| 美女视频黄免费的久久| 一级成人国产| 亚洲男女av一区二区| 色爱综合网欧美| 欧美天堂在线| 深夜日韩欧美| 免费美女久久99| 亚洲一区二区三区高清| 亚洲成人av观看| 国产一区二区三区国产精品| 国产欧美激情| 91精品美女| 亚欧洲精品视频在线观看| 国产视频一区免费看| 激情欧美一区二区三区| 蜜桃精品在线| 国产v日韩v欧美v| 精品国产亚洲一区二区三区在线| 国产精品资源| 日韩精品一二三| 国产精品视区| 久久国产精品99国产| 最新日韩欧美| 影音先锋久久| 欧美另类综合| 在线视频免费在线观看一区二区| 鲁鲁在线中文| www.com.cn成人| 日韩国产专区| 999久久久国产精品| 久久91导航| 久久亚洲国产| 不卡一区综合视频| 99成人在线| 国产亚洲精品自拍| 六月婷婷一区| 蜜臀av国产精品久久久久| 亚洲一区成人| 中文字幕亚洲影视| 亚洲免费资源| 国产亚洲欧美日韩在线观看一区二区 | 日韩不卡视频在线观看| 麻豆国产精品视频| 麻豆91在线播放| 精品日本视频| 久久精品国产精品亚洲毛片| 精品中文字幕一区二区三区四区| 视频在线不卡免费观看| av资源中文在线| 日产精品一区| 亚洲精品91| 在线精品国产亚洲| 国产日韩亚洲| 国产在线不卡一区二区三区| 国产不卡精品| 久久久久国产精品一区三寸| 亚洲少妇诱惑| 日韩精品免费视频一区二区三区 | 91p九色成人| 国产成人免费视频网站视频社区| 蜜桃av在线播放| 蘑菇福利视频一区播放| 日韩一区二区三区免费视频| 国产日产高清欧美一区二区三区| 91大神在线观看线路一区| 日本欧美一区二区| 麻豆成人av在线| 欧美亚洲激情| 日韩在线成人| 激情黄产视频在线免费观看| 亚洲激情二区| 国产精品色婷婷在线观看| 亚洲成a人片| 日本亚洲三级在线| 麻豆视频在线观看免费网站黄 | 亚洲一区资源| 另类亚洲自拍| 欧美黄色一区| 久久精品一区二区三区中文字幕| 香蕉成人av| 日韩一区免费| 日韩不卡免费高清视频| 亚洲精品日本| 国产成人1区| 国产亚洲一级| 麻豆视频久久| 午夜免费一区| 麻豆国产欧美一区二区三区 | 成年男女免费视频网站不卡| 国产毛片久久| 精品一区二区三区在线观看视频| 黄色欧美在线| 免费看欧美美女黄的网站| 精品国产欧美日韩| 亚洲一区二区小说| 日韩黄色大片网站| 97久久亚洲| 91久久亚洲| 国产精品毛片久久| 日韩精品免费视频人成| 亚洲电影有码| 国产精品一区二区三区www| 国产伊人精品| 欧美交a欧美精品喷水| 久久电影一区| 丝袜美腿诱惑一区二区三区| 亚洲尤物av| 久久久蜜桃一区二区人| 国产精品极品| 蜜臀91精品一区二区三区| 亚洲www啪成人一区二区| 国产精品久久久久久av公交车| 三级亚洲高清视频| 99精品在线观看| 粉嫩av一区二区三区四区五区 | 日韩在线a电影| 国产99亚洲| 91中文字幕精品永久在线| 热久久久久久| 国产亚洲综合精品| 人人精品亚洲| 国产精选在线| 麻豆精品国产91久久久久久| 日韩av一级片| 男女男精品视频网| 136国产福利精品导航网址| 久久免费福利| 国产欧美综合一区二区三区| 中文字幕亚洲在线观看| 中文欧美日韩| 国产韩日影视精品| 久久国产日本精品| 中文av在线全新| 精品一区二区三区视频在线播放| 蜜桃久久久久久久| 在线综合欧美| 伊人久久婷婷| 亚洲激情不卡| 欧美女激情福利| 午夜久久免费观看| 激情欧美亚洲| 免费视频国产一区| 亚洲国产综合在线看不卡| 久久久久国产精品一区二区|