Java中怎么利用TCP套接字實現(xiàn)多人聊天功能

今天就跟大家聊聊有關Java中怎么利用TCP套接字實現(xiàn)多人聊天功能,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據(jù)這篇文章可以有所收獲。

讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:主機域名、雅安服務器托管、營銷軟件、網(wǎng)站建設、白塔網(wǎng)站維護、網(wǎng)站推廣。

先創(chuàng)建一個服務端:

package interWebWriterEven2;import java.net.ServerSocket;import java.net.Socket;import java.util.ArrayList;/** * 服務端 * @author * */public class ServiceT {    static ArrayList<Socket> list = new ArrayList<Socket>();    public static void main(String[] args) {        ServerSocket server;        try {            server = new ServerSocket(9999);            while(true){                Socket socket = server.accept();                System.out.println(socket.getInetAddress().getHostName()+"連接成功。IP:"+socket.getInetAddress().getHostAddress());                list.add(socket);                ServiceThreadT t =new ServiceThreadT(socket);                t.start();            }        } catch (Exception e) {            // TODO Auto-generated catch block            e.printStackTrace();        }    }}

接著是服務端的線程:

package interWebWriterEven2;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.FileOutputStream;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.net.Socket;/** * 服務端線程 * @author * */public class ServiceThreadT extends Thread{    private Socket socket;    public Socket getSocket() {        return socket;    }    public void setSocket(Socket socket) {        this.socket = socket;    }    public ServiceThreadT(Socket socket) {        super();        this.socket = socket;    }    @Override    public void run() {        try {            @SuppressWarnings("resource")            BufferedWriter wFile = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("D://messagesT.txt",true)));            BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));            String strOut = "";            String strIn = "";            while(true){                strIn = socket.getInetAddress().getHostName()+":"+br.readLine();                strOut = strIn;                wFile.write(strIn);                wFile.newLine();                wFile.flush();                for (Socket soc : ServiceT.list) {                    if(soc != socket){                        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(soc.getOutputStream()));                        bw.write(strOut);                        System.out.println(strOut);                        bw.newLine();                        bw.flush();                    }                }            }        } catch (Exception e) {            // TODO Auto-generated catch block            e.printStackTrace();        }    }}

然后是客戶端(應用端):

package interWebWriterEven2;import java.io.BufferedReader;import java.io.InputStreamReader;import java.net.Socket;/** * 客戶端 * @author * */public class ClientT {    public static void main(String[] args) {        try {            Socket socket = new Socket("127.0.0.1",9999);            ClientThreadT t = new ClientThreadT(socket);            t.start();            BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));            String strIn = "";            while(true){                strIn = br.readLine();                System.out.println(strIn);            }        } catch (Exception e) {            // TODO Auto-generated catch block            e.printStackTrace();        }    }}

最后是客戶端的線程:

package interWebWriterEven2;import java.io.BufferedWriter;import java.io.IOException;import java.io.OutputStreamWriter;import java.net.Socket;import java.util.Scanner;/** * 客戶端的線程 * @author * */public class ClientThreadT extends Thread{    private Socket socket;    public Socket getSocket() {        return socket;    }    public void setSocket(Socket socket) {        this.socket = socket;    }    public ClientThreadT(Socket socket) {        super();        this.socket = socket;    }    @Override    public void run() {        @SuppressWarnings("resource")        Scanner sc = new Scanner(System.in);        try {            BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));            while(true){                System.out.println();                bw.write(sc.nextLine().trim());                bw.newLine();                bw.flush();            }        } catch (IOException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }    }}

看完上述內容,你們對Java中怎么利用TCP套接字實現(xiàn)多人聊天功能有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。

文章題目:Java中怎么利用TCP套接字實現(xiàn)多人聊天功能
網(wǎng)頁網(wǎng)址:http://bm7419.com/article22/goeijc.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內鏈、虛擬主機、網(wǎng)站設計公司、搜索引擎優(yōu)化、軟件開發(fā)、外貿網(wǎng)站建設

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運營