生产环境下,java socket 代码,接收不到响应?也不知道是生产服务器哪的毛病

测试下能够正常返回

生产下出现接收不到数据。现在也不知怎么排查了

排查了对方响应:正常返回

排查了我方交换机:正常接收到数据

排查了我方生产代码放到测试环境:正常收到数据

交换机到生产服务器,代码接收不到数据

我方 socket client 请求 -> 交换机 -> 三方

三方响应 -> 交换机-> 我 socket client 接收端读不到数据

使用的下面类似的代码 通过 readline 函数读取

import java.io.BufferedReader;  
import java.io.BufferedWriter;  
import java.io.IOException;  
import java.io.InputStream;  
import java.io.InputStreamReader;  
import java.io.OutputStream;  
import java.io.OutputStreamWriter;  
import java.net.Socket;  
import java.net.UnknownHostException;  
  
public class SocketSend  
{  
    public static void main(String[] args)  
    {  
        String ip = "";  
        int port = ;  
        try  
        {  
            Socket socket = new Socket(ip, port);  
            OutputStream os = socket.getOutputStream();  
            InputStream is = socket.getInputStream();  
            BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(os));  
            String line = "aaa";  
            bw.write(line);  
            bw.flush();  
            System.out.println("发送:"+line);  
      
            BufferedReader br = new BufferedReader(new InputStreamReader(is));  
            StringBuffer sb = new StringBuffer();  
            if ((line = br.readLine()) != null)  
            {  
                sb.append(line);  
            }  
            System.out.println("返回:"+sb.toString());  
      
            br.close();  
            bw.close();  
            socket.close();  
        } catch (UnknownHostException e)  
        {  
            e.printStackTrace();  
        } catch (IOException e)  
        {  
            e.printStackTrace();  
        }   
    }  
}  
  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    2621 引用 • 8015 回帖 • 775 关注
  • Socket
    21 引用 • 32 回帖
  • Q&A

    提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。

    1579 引用 • 10365 回帖 • 574 关注
4 回帖
请输入回帖内容...
  • 614756773

    服务器是否开放了相应的端口

    1 回复
  • xhaoxiong

    我方服务器上 Javasocket 是客户端,在测试环境下接收数据就没问题,上生产请求到三方,三方响应有返回,响应数据经过我方交换机 能看到数据,交换机到客户端就 socket 客户端 readline 是空的

    1 回复
  • adlered

    客户端接收单起一个线程,试试看字节流?

  • ghostsf

    所以交换机是个啥? 测试环境也是一样的方式吗?

    打印下 socket client 连接状态 看看呢?