如何使用Java实现基于Tcp的基础聊天功能

这篇文章给大家分享的是有关如何使用Java实现基于Tcp的基础聊天功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

具体如下:

最基础的聊天,用户端和服务器端每次说一句,而且严格规定了先后到顺序。

服务器端:

import java.io.*;import java.net.*;public class ChatServer {    public static void main(String[] args) {        ServerSocket server = null;        try {            server = new ServerSocket(12138);        } catch (IOException e) {            System.out.println("error" + e);        }//        server = null;        try {            Socket ac = null;//            ac = new Socket();//            ac = null;            ac = server.accept();            BufferedReader is = null;            is = new BufferedReader(new InputStreamReader(ac.getInputStream()));            BufferedReader dis = new BufferedReader(new InputStreamReader(System.in));            PrintWriter os = new PrintWriter(ac.getOutputStream());            String line = null;            System.out.println("clinent " + is.readLine());            line = dis.readLine();            while(!line.equals("bey")) {                os.println(line);                os.flush();                System.out.println("server " + line);                System.out.println("client " + is.readLine());                line = dis.readLine();            }            os.close();            dis.close();            is.close();            ac.close();        } catch (Exception e) {            System.out.println("error" + e);        }    }}

用户端:

public class ChatClient {    public static void main(String[] args) {        Socket client = null;        try {            client = new Socket("127.0.0.1",12138);            BufferedReader dis = new BufferedReader(new InputStreamReader(System.in));            BufferedReader is = new BufferedReader(new InputStreamReader(client.getInputStream()));            PrintWriter os = new PrintWriter(client.getOutputStream());            String line = dis.readLine();            while(!line.equals("bey")) {                os.println(line);                os.flush();                System.out.println("client " + line);                System.out.println("server " + is.readLine());                line = is.readLine();            }            os.close();            dis.close();            is.close();            client.close();        } catch (Exception e) {            System.out.println("error" + e);        }    }}

无论是用户端还是服务器端都用了BufferedReader用来写入一些了连续的字符串,用PrintWriter进行输出。

注:BufferedWriter接收到的参数需要是字符类的数据流,所以要建一个inputStreamReader,而InputStreamReader的参数是数据流即可。

上面规定了写入的顺序是客户端先写,然后是服务器端;

注意要在循环结束的时候close个个数据流和端口。

感谢各位的阅读!关于“如何使用Java实现基于Tcp的基础聊天功能”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!