客户端连接服务端取数据。得到的字节流为空。用别人的软件就能读取到数据。
Socket socket = new Socket("192.168.73.7", 8021);
if(socket.isConnected()) {
System.out.println("连接成功");
}
InputStream is = socket.getInputStream();
System.out.println(is.read());
然后用抓包工具分别测试自己的代码和软件取数据的区别。
先是我的Java代码抓包:然后用软件取数据抓包:可以看到,前三个包都是没有问题的。从第四个包开始,我就被断开了。
软件取数据时的第四个包还有一个PUSH数据。数据如下:
这是服务器端有权限验证么?直接把非法的链接给断了?Socket
Socket socket = new Socket("192.168.73.7", 8021);
if(socket.isConnected()) {
System.out.println("连接成功");
}
InputStream is = socket.getInputStream();
System.out.println(is.read());
然后用抓包工具分别测试自己的代码和软件取数据的区别。
先是我的Java代码抓包:然后用软件取数据抓包:可以看到,前三个包都是没有问题的。从第四个包开始,我就被断开了。
软件取数据时的第四个包还有一个PUSH数据。数据如下:
这是服务器端有权限验证么?直接把非法的链接给断了?Socket
上次我写一个socket总是在伐第二条数据的时候出现链接断开!
一直纳闷呢,后来才发现对发送的数据取得是字节的长度,而我写的是字符串的长度,所以每次一发送第二条对方就断开链接了,为此郁闷了好几天!