Java Android套接字异常(由对等方重置连接)
我正在尝试使用Android的Java Android套接字异常(由对等方重置连接),java,android,sockets,connection-reset,Java,Android,Sockets,Connection Reset,我正在尝试使用Android的vpn服务在收到数据包后将其转发到原始目的地。在使用正确的目标地址将数据写入套接字后,我尝试获得如下响应: Socket socket = SocketChannel.open().socket(); socket.connect(new InetSocketAddress(ipPacket.getDestinationIp(), ipPacket.getDstPort())); ByteBuffer serverResponse = ByteBuffer.all
vpn服务
在收到数据包后将其转发到原始目的地。在使用正确的目标地址将数据写入套接字后,我尝试获得如下响应:
Socket socket = SocketChannel.open().socket();
socket.connect(new InetSocketAddress(ipPacket.getDestinationIp(), ipPacket.getDstPort()));
ByteBuffer serverResponse = ByteBuffer.allocate(65535);
InputStream socketInputStream = socket.getInputStream();
int responseLength = socketInputStream.read(serverResponse.array());
但是,行int responseLength=socketInputStream.read(serverResponse.array())代码>导致以下问题:
java.net.SocketException:recvfrom失败:EconReset(由对等方重置连接)
如何修复此问题?告诉另一端的服务器(=对等方)不要关闭连接:)无论导致此问题的错误是什么,都不在您显示的几行代码中。你是如何得到那个插座的?您以前是.close()
它还是附加到它的流?@zapl我创建了如下套接字:socket socket=SocketChannel.open().socket()
和socket.connect(新的InetSocketAddress(ipPacket.getDestinationIp(),ipPacket.getdsport())
其中目标IP和端口来自VPN的tun
interface@EJP对不起,我不明白你想说什么,但是为什么你要使用NIO和streams、ByteBuffers和字节数组的奇怪混合体呢?下定决心吧。用一个或另一个。如果你是网络初学者,我肯定会使用套接字和流。@EJP我使用的是SocketChannel.open()
,因为没有它,VpnService
中的protect()
方法就无法工作。我已经更改了它,现在它可以正常工作了。谢谢你的帮助!告诉另一端的服务器(=对等方)不要关闭连接:)无论导致这种情况的错误是什么,都不在您显示的几行代码中。你是如何得到那个插座的?您以前是.close()
它还是附加到它的流?@zapl我创建了如下套接字:socket socket=SocketChannel.open().socket()
和socket.connect(新的InetSocketAddress(ipPacket.getDestinationIp(),ipPacket.getdsport())
其中目标IP和端口来自VPN的tun
interface@EJP对不起,我不明白你想说什么,但是为什么你要使用NIO和streams、ByteBuffers和字节数组的奇怪混合体呢?下定决心吧。用一个或另一个。如果你是网络初学者,我肯定会使用套接字和流。@EJP我使用的是SocketChannel.open()
,因为没有它,VpnService
中的protect()
方法就无法工作。我已经更改了它,现在它可以正常工作了。谢谢你的帮助!