使用Java实现hello/hi的简单网络聊天程序

Socket又称套接字,是基于应用服务与TCP/IP通信之间的一个抽象,将TCP/IP协议里面的通信逻辑进行分装,只要通过一组简单的API就可以实现网络的链接。

分别开两个线程,一个作为服务端,一个作为客户端。客户端主要监听端口上的信息,并以字节流读取并显示,同时在Server类里面,还需要同时开启监听和发送信息的线程。每连上一个客户端,就需要对应开启一个监听信息的线程。

服务器端:

import java.io.*;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;

public class Server extends Netutil {

    public static void main(String[] args) {
        new Server().Get();
    }

    /*进入的方法*/
    public void Get() {
        try {
            ServerSocket serverSocket = new ServerSocket(4432);
            InetAddress inetAddress = InetAddress.getLocalHost();

            // System.out.println("开启服务器");
            Socket accept;
            while (true) {
                accept = serverSocket.accept();
                //System.out.println("主机"+accept.getRemoteSocketAddress()+"连接服务器");

                Thread hander = new Thread(new Handler(accept));
                hander.start();


            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }


    /**
     * 内部处理类
     */
    class Handler extends Netutil implements Runnable {
        Socket socket;

        public Handler(Socket socket) {
            this.socket = socket;
        }

        @Override
        public void run() {
            try {
                super.Oprate(socket);
            } catch (IOException e) {
                e.printStackTrace();
            }

        }
    }

}

客户端:

import java.io.*;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;

public class Server extends Netutil {

    public static void main(String[] args) {
        new Server().Get();
    }

    /*进入的方法*/
    public void Get() {
        try {
            ServerSocket serverSocket = new ServerSocket(4432);
            InetAddress inetAddress = InetAddress.getLocalHost();

            // System.out.println("开启服务器");
            Socket accept;
            while (true) {
                accept = serverSocket.accept();
                //System.out.println("主机"+accept.getRemoteSocketAddress()+"连接服务器");

                Thread hander = new Thread(new Handler(accept));
                hander.start();


            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }


    /**
     * 内部处理类
     */
    class Handler extends Netutil implements Runnable {
        Socket socket;

        public Handler(Socket socket) {
            this.socket = socket;
        }

        @Override
        public void run() {
            try {
                super.Oprate(socket);
            } catch (IOException e) {
                e.printStackTrace();
            }

        }
    }

}

猜你喜欢

转载自www.cnblogs.com/lyp1020k/p/12018506.html
今日推荐