socket无法接受响应数据,但数据包确实到达本机

最近在公司的电脑上写了一段代码

Socket soc = new Socket("172.16.195.250",22);
boolean isConnect = soc.isConnect(); //返回true
int b = 0;
InputStream is = soc.getInputStream();
while((b=is.read())!=-1){
    if(b==13){
        break;
    }
    System.out.println(b);
}

这段代码的作用是连接172.16.195.250:22的sftp服务,在公司的大部分电脑中,控制台将会输出代表服务器SSH协议版本号的各字符的ASCII(反正就是有内容输出),但在个别电脑上,将会在b=is.read()一行发送阻塞。


起初以为是网络原因导致本机没有收到来自服务端设备的数据包,所以用wiredshark进行抓包,结果发现包含服务端协议版本号的数据包已经到达端口(即能够被抓到)。


现在的问题就是,为什么数据包到达端口了,socket却未能获取到数据包中的内容,请遇到相关问题的道友教一下,谢谢。。

https://blog.csdn.net/u012187684/article/details/22394203