| 网站首页 | 业界新闻 | 小组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 438 人关注过本帖
标题:监听端口
只看楼主 加入收藏
双子座私语
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望: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: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:3
帖 子:19
专家分:141
注 册:2020-5-6
收藏
得分:0 
总算是找到问题了,读取输入流的时候阻塞了,客户方的输出流输出后读取一直阻塞,导致后面执行不了,对方的超时是8秒,我这里是10秒,他们超时后,自动关闭,我这里就继续执行,难怪没报错,对方却节后不到响应报文
2020-05-14 14:41
快速回复:监听端口
数据加载中...
 
   



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

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