17-JavaSocket开发

客户端和服务端通信方法

(Socket)传输层: TCP UDP
(J2EE、Spring+)应用层:Http、Https 、(ftp)
一次请求一次响应

java-网络编程类

服务端-ServerSocket(java.net)

//创建服务端
        ServerSocket serverSocket = new ServerSocket(端口号);
        while(true){
    
    
            //获取客户端连接
            Socket 连接的客户端对象 = serverSocket.accept();
        }

客户端-Socket

Socket sc = new Socket("服务端所在的ip地址","服务端端口号");

客户端和服务端之间的通信

C端和服务端通信是基于客户端与服务端建立的IO通道进行通信的,(一般情况下不要关闭IO流)

//服务端要获取客户端发送的消息(代码写在服务端处)
InputStream inputStream = socket.getInputStream();

//客户端要获取服务端的消息(代码写在客户端处)
InputStream inputStream = socket.getInputStream();

//服务端要发送消息给客户端(代码写在服务端处)
OutputStream outputStream = socket.getOutputStream();

//客户端要发送消息给服务端(代码写在客户端处)
OutputStream outputStream = socket.getOutputStream();

服务端和客户端创建方法

new Thread(()->{
    
    
            //1. 创建服务端
            ServerSocket serverSocket = null;
            try {
    
    
                serverSocket = new ServerSocket(8080);
            } catch (IOException e) {
    
    
                System.err.println("创建服务异常!");
            }
            System.out.println("服务端创建成功!。。。等待连接");

            Socket accept = null;// 阻塞
            try {
    
    
                accept = serverSocket.accept();
            } catch (IOException e) {
    
    
                System.err.println("获取客户端连接异常!");
            }

            System.out.println("有客户端连接!");
            System.out.println(accept);
        },"server").start();

        Thread.sleep(1000);

        //客户端线程
        new Thread(()->{
    
    
            try {
    
    
                Socket sc = new Socket("127.0.0.1",8080);
            } catch (IOException e) {
    
    
                System.err.println("创建客户端异常!");
            }
        },"C1").start();

聊天程序常用方法

sc.sendUrgentData(1);//如果异常代表客户端不在线 
sc.setKeepAlive(true);// 保持连接活跃
sc.setSoTimeout(999999999);// 设置客户端断线时间

猜你喜欢

转载自blog.csdn.net/gjb760662328/article/details/129164377