До сих пор я делал все по инструкции и всегда получал это исключение, поэтому мне действительно нужен совет. Я пытаюсь реализовать пару клиент-сервер, используя домашний Wi-Fi.
Как-то это связано с моим интернет-провайдером? В манифесте Android уже есть INTERNET и ACCESS_NETWORK_STATE (и даже MANAGE_EXTERNAL..., хотя это не имеет прямого отношения к делу).
Java-сервер :
try {
FileInputStream fIS = new FileInputStream(file);
fIS.read(array, 0, array.length);
Socket client = serverSocket.accept();
if (!(client.getInetAddress().getHostAddress().equals("192.168.1.2"))) client.close();
System.out.println(client.getInetAddress().getHostAddress() + " HAS CONNECTED, PORT "
+ client.getPort());
if (client.isOutputShutdown()) {
System.out.println("CLIENT SOCKET HAS BEEN SHUT!!!!!!");
return;
}
OutputStream clientOut = client.getOutputStream();
System.out.println("SENDING FILE CHUNKS...");
System.out.println("0000000000000000");
clientOut.write(array, 0, array.length);
clientOut.flush();
System.out.println("111111111111111111");
client.close();
System.out.println("333333333333333333");
System.out.println("FINISHED!");
}
catch(SocketException se){
System.err.println(se.getMessage());
se.printStackTrace();
}
catch(FileNotFoundException ex){
System.err.println(ex.getMessage());
}
catch(IOException ex){
System.err.println(ex.getMessage());
}
Клиент Android:
try {
clientSocket = new Socket("192.168.1.4",65001,thisLocalAddr,64999);
clientSocket.setSoTimeout(15000);
array = new byte[13574867];
InputStream realIS = clientSocket.getInputStream();
if (clientSocket.isInputShutdown()) return;
realIS.read(array,0,array.length);
fiOS = new FileOutputStream(Environment.getExternalStorageDirectory() +
"/Share/file.pdf");
fiOS.write(array,0, array.length);
realIS.close();
clientSocket.close();
fiOS.close();
}
catch (SocketException se) {
Log.e("MainActivity ", se.getStackTrace().toString());
}
catch (NumberFormatException nfn) {
Log.d("MainActivity", nfn.getStackTrace().toString());}
catch (UnknownHostException uhe) {
Log.d("MainActivity", "Unknown Host Exception");
Log.d("FileReceiver: ","dumbo = " + dumbo.length()) ;
}
Результат консоли:
192.168.1.2 HAS CONNECTED, PORT 64999
SENDING FILE CHUNKS...
0000000000000000
Connection reset by peer
java.net.SocketException: Connection reset by peer
at java.base/sun.nio.ch.SocketDispatcher.write0(Native Method)
at java.base/sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:54)
at java.base/sun.nio.ch.NioSocketImpl.tryWrite(NioSocketImpl.java:394)
at java.base/sun.nio.ch.NioSocketImpl.implWrite(NioSocketImpl.java:410)
at java.base/sun.nio.ch.NioSocketImpl.write(NioSocketImpl.java:440)
at java.base/sun.nio.ch.NioSocketImpl$2.write(NioSocketImpl.java:819)
at java.base/java.net.Socket$SocketOutputStream.implWrite(Socket.java:1223)
at java.base/java.net.Socket$SocketOutputStream.write(Socket.java:1210)
at Main.sendFile(Main.java:53)
at Main.main(Main.java:15)
Подробнее здесь: https://stackoverflow.com/questions/783 ... a-server-s
Клиентский сокет Android никогда ничего не получает от сокета сервера Windows Java. ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Клиентский сокет Android никогда ничего не получает от сокета сервера Windows Java.
Anonymous » » в форуме Android - 0 Ответы
- 21 Просмотры
-
Последнее сообщение Anonymous
-