Singleton de comunicación de red

Socket, comunicación de red Java, programación de red

La unidad básica de comunicación, el programa A encuentra el programa B, A se llama cliente y B se llama servidor. La
comunicación de socket se basa en TCP / IP, TCP (transmisión) y UDP (paquete de datos)

Aplicación sencilla

Cliente:

public static void main(String[] args) {

        try {
            Socket socket = new Socket("127.0.0.1", 8888);

            OutputStream os = socket.getOutputStream();

            PrintWriter pw = new PrintWriter(os);

            pw.write("你好");

            pw.flush();

            pw.close();
            os.close();
            socket.close();

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

Servidor


    public static void main(String[] args) {

        try {

            ServerSocket server =new ServerSocket(8888);

            Socket socket = server.accept();

            InputStream is = socket.getInputStream();

            BufferedReader br = new BufferedReader(new InputStreamReader(is));

            String str = br.readLine();

            System.out.println("这是服务端,收到了:"+str);



            br.close();
            is.close();
            socket.close();
            server.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

Hay comentarios:

Cliente:

public static void main(String[] args) {
        try {
            ServerSocket server =new ServerSocket(8765);
            Socket socket = server.accept();

            InputStream is = socket.getInputStream();
            OutputStream os = socket.getOutputStream();

            BufferedReader br = new BufferedReader(new InputStreamReader(is));

            String str = br.readLine();

            String name = str.substring(2, 5);
            String answer = "";
            if (name.equals("13号")) {
                answer="好的 我马上出来";
            } else if(name.equals("孟老师")){
                answer="老师好 我不太舒服 我不去了";
            }else {
                answer="滚!!!";
            }


            PrintWriter pw = new PrintWriter(os);
            pw.write(answer);
            pw.flush();


            br.close();
            is.close();

            pw.close();
            os.close();
            socket.close();
            server.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

Servidor:


    public static void main(String[] args) {

        try {
            Socket socket = new Socket("127.0.0.1", 8765);

            OutputStream os = socket.getOutputStream();
            InputStream is = socket.getInputStream();

            PrintWriter pw = new PrintWriter(os);
            pw.write("我是tye,出来玩吧");
            pw.flush();

            socket.shutdownOutput();

            BufferedReader br = new BufferedReader(new InputStreamReader(is));
            String str = br.readLine();
            System.out.println("收到了zrr说:"+str);

            pw.close();
            os.close();
            socket.close();

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

    }

Objeto de transferencia

Clase de usuario

public class User implements Serializable{

    int account;
    String uname;
    Date openDate;
    double amount;


    public int getAccount() {
        return account;
    }
    public void setAccount(int account) {
        this.account = account;
    }
    public String getUname() {
        return uname;
    }
    public void setUname(String uname) {
        this.uname = uname;
    }
    public Date getOpenDate() {
        return openDate;
    }
    public void setOpenDate(Date openDate) {
        this.openDate = openDate;
    }
    public double getAmount() {
        return amount;
    }
    public void setAmount(double amount) {
        this.amount = amount;
    }



}

Cliente:

import pojo.User;

public class Client3 {

    public static void main(String[] args) throws Exception{

        User user = new User();
        user.setAccount(123123);
        user.setUname("zhangsan");
        user.setAmount(123.45);
        user.setOpenDate(new Date());

        Socket socket = new Socket("127.0.0.1", 7778);

        OutputStream os = socket.getOutputStream();

        ObjectOutputStream oos = new ObjectOutputStream(os);

        oos.writeObject(user);

        oos.flush();

        oos.close();

        os.close();

        socket.close();


    }

}

Servidor:

import pojo.User;

public class Server3 {

    public static void main(String[] args) throws Exception{

        ServerSocket server = new ServerSocket(7778);

        Socket socket = server.accept();

        ObjectInputStream ois = new ObjectInputStream(socket.getInputStream());

        User u = (User)ois.readObject();

        System.out.println(u.getAccount()+" "+u.getAmount()+" "+u.getUname()+" "+u.getOpenDate());

        ois.close();
        socket.close();
        server.close();
    }

}

Modo singleton

public class Singleton {
    private static Singleton singleton;
    private Singleton(){
    }

    public static Singleton gentlnstance(){
        if (singleton == null){
            singleton = new Singleton();
        }
        return singleton;
    }
}

Supongo que te gusta

Origin blog.csdn.net/GodfatherTye/article/details/109208387
Recomendado
Clasificación