• java之接口开发-初级篇-socket通信


    socket通信实现util包类实现

    public class SocketThread extends Thread {
    public void run() {
    while (true) {
    // log4j
    Logger log = (Logger) LogManager.getLogger(SocketThread.class);
    // 标识服务信息
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
    ServerSocket ss;// socket服务监听对象
    Socket socket;// 获取监听得到的结果
    BufferedReader in;// 输入流
    PrintWriter out;// 输出流
    try {
    // 设置监听的端口,并实例监听对象
    ss = new ServerSocket(SocketConstants.SOCKET_PORT_NO_EC);
    while (true) {

    // 开始监听,若没有客户端请求则线程一直停留在这里等待请求,
    // 一旦就有请求,就获取监听到的对象
    socket = ss.accept();

    InputStream sis = socket.getInputStream();// socket服务获取的输入流

    // 等待读取状态
    // 大于零为获取完毕
    while (sis.available() <= 0)
    System.out.println("inputStream is waitting...");

    in = new BufferedReader(new InputStreamReader(sis));// 获取输入

    String line = "";// 监听到的字符串

    // 读数据
    while (in.ready()) {
    line += in.readLine();
    }
    // 记录下获取到的字符串流
    log.warn("client request is :" + line);
    out = new PrintWriter(socket.getOutputStream(), true);// 构建输出

    // 输出
    out.println("server response " + sdf.format(new Date()));
    // 关闭当前请求对象
    out.close();
    in.close();
    socket.close();
    }
    } catch (IOException e) {
    String msg = " " + e.getMessage();
    for (StackTraceElement ste : e.getStackTrace()) {
    msg += " " + ste.getClassName() + "-" + ste.getFileName() + "-" + ste.getMethodName() + "-" + ste.getLineNumber();
    }
    log.fatal(msg);
    } catch (Exception ex) {
    String msg = " " + ex.getMessage();
    for (StackTraceElement ste : ex.getStackTrace()) {
    msg += " " + ste.getClassName() + "-" + ste.getFileName() + "-" + ste.getMethodName() + "-" + ste.getLineNumber();
    }
    log.fatal(msg);
    }
    }
    }
    }

  • 相关阅读:
    对JAVA集合进行遍历删除时务必要用迭代器
    【javascript的那些事】等待加载完js后执行方法
    【微信H5】 Redirect_uri参数错误解决方法
    关于Java优质代码的那些事
    H5页面微信分享和手Q分享设置
    LVS+keepalived-DR模式
    Linux文件误删恢复
    MySQL常用语句
    sudo权限配置
    Rsync同步部署web服务端配置
  • 原文地址:https://www.cnblogs.com/zhouxuejia/p/10518949.html
Copyright © 2020-2023  润新知