欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java實現(xiàn)在線聊天功能

 更新時間:2022年09月15日 10:31:03   作者:Lete樂特  
這篇文章主要為大家詳細(xì)介紹了Java實現(xiàn)在線聊天功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了Java實現(xiàn)在線聊天功能的具體代碼,供大家參考,具體內(nèi)容如下

效果

關(guān)鍵代碼

創(chuàng)建Client.java

import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;

/**
?* @author Lete
?* @樂特的程序永無BUG
?* @createDate 2020- 07-04 22:13
?*
?* 1. SendThread 發(fā)送消息線程
?* 2. RecieveThread 接受消息線程
?*/
public class Client {
? ? public static void main(String[] args) {

? ? ? ? try {
? ? ? ? ? ? // 創(chuàng)建8888端口
? ? ? ? ? ? Socket s = new Socket("127.0.0.1", 8888);

? ? ? ? ? ? // 啟動發(fā)送消息線程
? ? ? ? ? ? new SendThread(s).start();
? ? ? ? ? ? // 啟動接受消息線程
? ? ? ? ? ? new RecieveThread(s).start();

? ? ? ? } catch (UnknownHostException e) {
? ? ? ? ? ? // TODO Auto-generated catch block
? ? ? ? ? ? e.printStackTrace();
? ? ? ? } catch (IOException e) {
? ? ? ? ? ? // TODO Auto-generated catch block
? ? ? ? ? ? e.printStackTrace();
? ? ? ? }
? ? }
}

創(chuàng)建Server.java

import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;

/**
?* @author Lete
?* @樂特的程序永無BUG
?* @createDate 2020- 07-04 22:13
?*
?* 1. SendThread 發(fā)送消息線程
?* 2. RecieveThread 接受消息線程
?*/
public class Server {
? ? public static void main(String[] args) {
? ? ? ? try {

? ? ? ? ? ? // 監(jiān)聽8888端口
? ? ? ? ? ? ServerSocket ss = new ServerSocket(8888);

? ? ? ? ? ? System.out.println("監(jiān)聽在端口號:8888");
? ? ? ? ? ? Socket s = ss.accept();

? ? ? ? ? ? //啟動發(fā)送消息線程
? ? ? ? ? ? new SendThread(s).start();
? ? ? ? ? ? //啟動接受消息線程
? ? ? ? ? ? new RecieveThread(s).start();

? ? ? ? } catch (IOException e) {
? ? ? ? ? ? // TODO Auto-generated catch block
? ? ? ? ? ? e.printStackTrace();
? ? ? ? }

? ? }
}

創(chuàng)建RecieveThread.java

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

/**
?* @author Lete
?* @樂特的程序永無BUG
?* @createDate 2020- 07-04 22:13
?*
?* 1. SendThread 發(fā)送消息線程
?* 2. RecieveThread 接受消息線程
?*/
public class RecieveThread extends Thread {

? ? private Socket s;

? ? public RecieveThread(Socket s) {
? ? ? ? this.s = s;
? ? }

? ? public void run() {
? ? ? ? try {

? ? ? ? ? ? // 接收對方輸入的內(nèi)容
? ? ? ? ? ? InputStream is = s.getInputStream();
? ? ? ? ? ? DataInputStream dis = new DataInputStream(is);

? ? ? ? ? ? while (true) {
? ? ? ? ? ? ? ? String msg = dis.readUTF();
? ? ? ? ? ? ? ? System.out.println(msg);
? ? ? ? ? ? }
? ? ? ? } catch (IOException e) {
? ? ? ? ? ? // TODO Auto-generated catch block
? ? ? ? ? ? e.printStackTrace();
? ? ? ? }

? ? }

}

創(chuàng)建SendThread.java

import java.io.*;
import java.net.Socket;
import java.util.Scanner;

/**
?* @author Lete
?* @樂特的程序永無BUG
?* @createDate 2020- 07-04 22:13
?*
?* 1. SendThread 發(fā)送消息線程
?* 2. RecieveThread 接受消息線程
?*/
public class SendThread extends Thread {

? ? private Socket s;

? ? public SendThread(Socket s) {
? ? ? ? this.s = s;
? ? }

? ? public void run() {
? ? ? ? try {

? ? ? ? ? ? // 獲取輸入的內(nèi)容
? ? ? ? ? ? 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) {
? ? ? ? ? ? // TODO Auto-generated catch block
? ? ? ? ? ? e.printStackTrace();
? ? ? ? }

? ? }

}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java線程中的Thread.yield()詳細(xì)解析

    Java線程中的Thread.yield()詳細(xì)解析

    這篇文章主要介紹了Java線程中的Thread.yield()詳細(xì)解析,yield()讓當(dāng)前線程從運行狀態(tài)?轉(zhuǎn)為?就緒狀態(tài),以允許具有相同優(yōu)先級的其他線程獲得運行機會,需要的朋友可以參考下
    2023-11-11
  • springcloud之Feign、ribbon如何設(shè)置超時時間和重試機制

    springcloud之Feign、ribbon如何設(shè)置超時時間和重試機制

    這篇文章主要介紹了springcloud之Feign、ribbon如何設(shè)置超時時間和重試機制,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • Java讀取.properties配置文件方法示例

    Java讀取.properties配置文件方法示例

    這篇文章主要介紹了Java讀取.properties配置文件,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • SpringMVC框架如何與Junit整合看這個就夠了

    SpringMVC框架如何與Junit整合看這個就夠了

    這篇文章主要介紹了SpringMVC框架如何與Junit整合看這個就夠了,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • 老生常談Java反射機制(必看篇)

    老生常談Java反射機制(必看篇)

    下面小編就為大家?guī)硪黄仙U凧ava反射機制(必看篇)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • Springboot項目實現(xiàn)將類從@ComponentScan中排除

    Springboot項目實現(xiàn)將類從@ComponentScan中排除

    這篇文章主要介紹了Springboot項目實現(xiàn)將類從@ComponentScan中排除,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • Spring框架整合Java Web Token問題

    Spring框架整合Java Web Token問題

    這篇文章主要介紹了Spring框架整合Java Web Token問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-09-09
  • dom4j從jar包中讀取xml文件的方法

    dom4j從jar包中讀取xml文件的方法

    這篇文章主要介紹了dom4j從jar包中讀取xml文件的方法,需要的朋友可以參考下
    2014-02-02
  • java版十大排序經(jīng)典算法:完整代碼(2)

    java版十大排序經(jīng)典算法:完整代碼(2)

    優(yōu)秀的文章也不少,但是Java完整版的好像不多,我把所有的寫一遍鞏固下,同時也真誠的希望閱讀到這篇文章的小伙伴們可以自己去從頭敲一遍,不要粘貼復(fù)制!希望我的文章對你有所幫助,每天進步一點點
    2021-07-07
  • Mybatis中連接查詢和嵌套查詢實例代碼

    Mybatis中連接查詢和嵌套查詢實例代碼

    這篇文章主要給大家介紹了關(guān)于Mybatis中連接查詢和嵌套查詢的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12

最新評論