我的应用程序需要通过http://127.0.0.1/...(localhost url)联系它正在处理的同一设备.
出于某种原因,当我到达那里有JSON内容的网站时,大约50%的时间(可能正好是50%),我得到例外:
java.net.SocketException:recvfrom失败:ECONNRESET(由对等方重置连接)
对于其他50%,我得到了非常好的结果.我试图进行民意调查(甚至民意调查之间的延迟很大),但我仍然得到同样奇怪的结果.
我搜索过互联网,也在这里,我不确定为什么会这样.对等方是否意味着客户端已经造成了这种情况?为什么会这样,我该如何处理?
一些网站说这是常见的事情,但我没有找到在这种情况下最好的事情.
我现在一直在寻找我的答案几个小时,我无法弄明白.请帮忙.
我想要做的是使用Android中的VpnService来获取网络数据包,如应用程序tPacketCapture
我开始使用谷歌的ToyVpn示例代码并对其进行修改,因此我不会将数据发送到服务器.但是,我不确定这是否正确.
我的configure方法在调用establish()之前使用binder.addAddress()的wlan ip地址.我正在使用nexus 7并使用"adb shell netcfg | grep wlan0"来获取地址:
wlan0 UP 192.168.0.6/24 0x00001043 10:bf:48:bf:5f:9d
并在我的方法中添加它:
private void configure() throws Exception {
// If the old interface has exactly the same parameters, use it!
if (mInterface != null) {
Log.i(TAG, "Using the previous interface");
return;
}
// Configure a builder while parsing the parameters.
Builder builder = new Builder();
builder.setMtu(1500);
builder.addAddress("192.168.0.6", 24);
try {
mInterface.close();
} catch (Exception e) {
// ignore
}
mInterface = builder.establish();
}
Run Code Online (Sandbox Code Playgroud)
在调用之后,我调用我修改的run方法来传递String而不是InetSocketAddress,这并不重要,因为我没有在任何地方使用它: …