一个很简单的网络聊天小工具,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();

                }

        }

}