首页 > PHP资讯 > 工具库 > 双向同步聊天小程序[ByJavaOnLinux]实现代码

双向同步聊天小程序[ByJavaOnLinux]实现代码

工具库
一个很简单的网络聊天小工具,java实现,双向同步发送信息,功能增加中
局域网内ip请自行更改,只要变更client端的localhost ip为另一台pc的ip就行

import java.io.*;import java.net.Socket;import java.net.ServerSocket;import java.net.SocketException;public class TestServer {        public static void main(String[] args) {                try {                        //open the communication port for messenge-transfer                        //server socket id:8888                        ServerSocket s = new ServerSocket(8888);                        //create socket instance and set it be waiting state to accept data                        Socket s1 = s.accept();                        //original data stream                        InputStream is = s1.getInputStream();                        OutputStream os = s1.getOutputStream();                                                DataOutputStream dos = new DataOutputStream(os);                        DataInputStream dis = new DataInputStream(is);                        System.out.println("Server started!");                        new MyServerReader(dis).start();                        new MyServerWriter(dos).start();                } catch (IOException ioe) {                        ioe.printStackTrace();                }        }}class MyServerReader extends Thread {        private DataInputStream dis;        public MyServerReader(DataInputStream dis) {                this.dis = dis;        }        public void run() {                String info;                try {                        while (true) {                                info = dis.readUTF();                                System.out.println("Ta said:" + info);                                if (info.equals("bye") || info.equals("88")) {                                        System.out.println("Ta offline, connection's out!");                                        System.exit(0);                                }                        }                } catch (IOException e) {                        e.printStackTrace();                }        }}class MyServerWriter extends Thread {        private DataOutputStream dos;        public MyServerWriter (DataOutputStream dos) {                this.dos = dos;        }        public void run() {                String info;                InputStreamReader isr = new InputStreamReader(System.in);                BufferedReader br = new BufferedReader(isr);                try {                        while (true) {                                info = br.readLine();                                dos.writeUTF(info);                                if (info.equals("bye") || info.equals("88")) {                                        System.out.println("Local machine Offline, application exit!");                                        System.exit(0);                                }                        }                } catch (IOException e) {                        e.printStackTrace();                }        }}

client端的:

import java.io.*;import java.net.Socket;import java.net.SocketException;public class TestClient {        public static void main (String[] args) {                try {                        Socket s1 = new Socket("127.0.0.1", 8888);                        InputStream is = s1.getInputStream();                        OutputStream os = s1.getOutputStream();                        DataInputStream dis = new DataInputStream(is);                        DataOutputStream dos = new DataOutputStream(os);                        new MyClientReader(dis).start();                        new MyClientWriter(dos).start();                } catch (IOException e) {                        e.printStackTrace();                }        }}class MyClientReader extends Thread {        private DataInputStream dis;        public MyClientReader(DataInputStream dis) {                this.dis = dis;        }        public void run() {                String info;                try {                        while (true) {                                info = dis.readUTF();                                System.out.println("Ta said:" + info);                                if (info.equals("bye") || info.equals("88")) {                                        System.out.println("Ta offline, connection's out!");                                        System.exit(0);                                }                        }                } catch (IOException e) {                        e.printStackTrace();                }        }}class MyClientWriter extends Thread {        private DataOutputStream dos;        public MyClientWriter (DataOutputStream dos) {                this.dos = dos;        }        public void run() {                String info;                InputStreamReader isr = new InputStreamReader(System.in);                BufferedReader br = new BufferedReader(isr);                try {                        while (true) {                                info = br.readLine();                                dos.writeUTF(info);                                if (info.equals("bye") || info.equals("88")) {                                        System.out.println("Local machine Offline, application exit!");                                        System.exit(0);                                }                        }                } catch (IOException e) {                        e.printStackTrace();                }        }}

以上就是双向同步聊天小程序[ByJavaOnLinux]实现代码的详细内容,更多请关注 第一PHP社区 其它相关文章!

工具库

本文由欣才IT学院整理发布,未经许可,禁止转载。
支持11不支持0