• Socket,ServerSocket,WebSocket


    一 区别

    首先来说下区别吧, 
    Socket和ServerSocket 指传输层网络接口协议,是基于套接字的服务端和客户端实现。 
    而WebScoket是应用层协议,是客户端-服务器的异步通信方法,用于双向推送消息。

    一、Socket通信基本示例

      这种模式是基础,必须掌握,后期对Socket的优化都是在这个基础上的,也是为以后学习NIO做铺垫。

    package yiwangzhibujian.onlysend;
    
    import java.io.InputStream;
    import java.net.ServerSocket;
    import java.net.Socket;
    
    public class SocketServer {
      public static void main(String[] args) throws Exception {
        // 监听指定的端口
        int port = 55533;
        ServerSocket server = new ServerSocket(port);
        
        // server将一直等待连接的到来
        System.out.println("server将一直等待连接的到来");
        Socket socket = server.accept();
        // 建立好连接后,从socket中获取输入流,并建立缓冲区进行读取
        InputStream inputStream = socket.getInputStream();
        byte[] bytes = new byte[1024];
        int len;
        StringBuilder sb = new StringBuilder();
        while ((len = inputStream.read(bytes)) != -1) {
          //注意指定编码格式,发送方和接收方一定要统一,建议使用UTF-8
          sb.append(new String(bytes, 0, len,"UTF-8"));
        }
        System.out.println("get message from client: " + sb);
        inputStream.close();
        socket.close();
        server.close();
      }
    }

      服务端监听一个端口,等待连接的到来。

    package yiwangzhibujian.onlysend;
    
    import java.io.OutputStream;
    import java.net.Socket;
    
    public class SocketClient {
      public static void main(String args[]) throws Exception {
        // 要连接的服务端IP地址和端口
        String host = "127.0.0.1"; 
        int port = 55533;
        // 与服务端建立连接
        Socket socket = new Socket(host, port);
        // 建立连接后获得输出流
        OutputStream outputStream = socket.getOutputStream();
        String message="你好  yiwangzhibujian";
        socket.getOutputStream().write(message.getBytes("UTF-8"));
        outputStream.close();
        socket.close();
      }
    }

      客户端通过ip和端口,连接到指定的server,然后通过Socket获得输出流,并向其输出内容,服务器会获得消息。最终服务端控制台打印如下:

    server将一直等待连接的到来
    get message from client: 你好  yiwangzhibujian

      通过这个例子应该掌握并了解:

    • Socket服务端和客户端的基本编程
    • 传输编码统一指定,防止乱码

      这个例子做为学习的基本例子,实际开发中会有各种变形,比如客户端在发送完消息后,需要服务端进行处理并返回,如下。

    java 实现websocket的两种方式

    简单说明

    1.两种方式,一种使用tomcat的websocket实现,一种使用spring的websocket

    2.tomcat的方式需要tomcat 7.x,JEE7的支持。 

    3.spring与websocket整合需要spring 4.x,并且使用了socketjs,对不支持websocket的浏览器可以模拟websocket使用

    方式一:tomcat

     https://www.cnblogs.com/xiaohuizhenyoucai/p/10670292.html

    方式一:spring

     https://www.cnblogs.com/xiaohuizhenyoucai/p/10671290.html

    参考: https://www.cnblogs.com/interdrp/p/7903736.html

  • 相关阅读:
    javascript前端如何使用google-protobuf
    【Linux】Linux中常用操作命令
    MyEclipse 安装svn 插件步骤详情
    MultipartFile(文件的上传)--CommonsMultipartResolver
    oracle sql 获取本季度所有月份,上季度所有月份
    git与github安装、配置
    Java使用JaxWsDynamicClientFactory和HttpURLConnection两种方式调取webservice的接口
    三级联动
    Excel的两种导出入门方法(JAVA与JS)
    页面设置遮罩层
  • 原文地址:https://www.cnblogs.com/xiaohuizhenyoucai/p/10694978.html
Copyright © 2020-2023  润新知