标题:监听端口
取消只看楼主
双子座私语
Rank: 3Rank: 3
等 级:论坛游侠
威 望:3
帖 子:19
专家分:141
注 册:2020-5-6
 问题点数:0 回复次数:1 
监听端口
public Zithread(Socket clientSocket){
    Socket socket = new Socket();
    try{
        socket = clientSocket;
        socket.setSoTimeout(10000);
        InputStreamReader isReader = new InputStreamReader(socket.getInputStream());
        OutputStream outputStream = new DataOutputStream(socket.getOutputStream());
        BufferedReader reader;
        reader = new BufferedReader(isReader);
        
        byte[] b = new byte[3000];
        int x;
        StringBuilder sBuilder = new StringBuilder();
        while((x=is.read(b)) != -1){
            sBuilder.append(new String(b, 0, x, "utf-8"));
        }
        String infos = sBuilder.toString();
        Map<String, Object> returnMap = this.dealWithInfos(infos);
        byte[] dateBytes = null;
        dateBytes = JsonUtil.buildJsonMessage(returnMap, "utf-8");
        outputStream.write(dateBytes);
        outputStream.flush();
        is.flush();
        outputStream.close();
        is.close();
    }catch (IOException e){
    }catch (Exception e){
    }finally{
        try{
            socket.close();
        }catch (IOException e){
        }
    }
}


这是我写的监听端口监听后的处理流程,监听到推送报文后进行处理可以接收到对方推送的报文,但是处理后返回报文对方却接收不到,我也用过dateoutputstream意外的方法写输出流,但是对方都接收不到,请问各位大大这是什么原因,本地没有报错,对方也没有报错,只是报的接收超时,对方可以接受其它系统的返回报文
搜索更多相关主题的帖子: Socket new 监听 接收 报文 
2020-05-08 09:51
双子座私语
Rank: 3Rank: 3
等 级:论坛游侠
威 望:3
帖 子:19
专家分:141
注 册:2020-5-6
得分:0 
总算是找到问题了,读取输入流的时候阻塞了,客户方的输出流输出后读取一直阻塞,导致后面执行不了,对方的超时是8秒,我这里是10秒,他们超时后,自动关闭,我这里就继续执行,难怪没报错,对方却节后不到响应报文
2020-05-14 14:41



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-501485-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.505595 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved