Rumah > applet WeChat > Pembangunan program mini > 双向同步聊天小程序[ByJavaOnLinux]实现代码

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

高洛峰
Lepaskan: 2017-03-24 14:01:48
asal
2202 orang telah melayarinya

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

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();

                }

        }

}

Salin selepas log masuk

client端的:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

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();

                }

        }

}

Salin selepas log masuk

Atas ialah kandungan terperinci 双向同步聊天小程序[ByJavaOnLinux]实现代码. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan