Я столкнулся с этим исключением: java.net.SocketException: программное обеспечение вызвало прерывание соединения, который может мне помочь.
socket.connect(new InetSocketAddress(Constant.IP_FLY, Constant.PORT_FLY),5000);
in = socket.getInputStream();
out = socket.getOutputStream();
dataOutputStream = new DataOutputStream(out);
dataInputStream = new DataInputStream(in);
protected byte[] readData = new byte[2048];
dataInputStream.read(readData);
После подключения сокета dataInputStream.read (readData) выполняется циклически,и обнаружено исключение:
System.err: java.net.SocketException: Software caused connection abort
System.err: at java.net.SocketInputStream.socketRead0(Native Method)
System.err: at java.net.SocketInputStream.socketRead(SocketInputStream.java:114)
System.err: at java.net.SocketInputStream.read(SocketInputStream.java:170)
System.err: at java.net.SocketInputStream.read(SocketInputStream.java:139)
System.err: at java.io.DataInputStream.read(DataInputStream.java:103)
System.err: at iot.android.com.iott.connection.TcpConnection.readDataBlock(TcpConnection.java:134)
System.err: at iot.android.com.iott.connection.MAVLinkConnection.run(MAVLinkConnection.java:87)
Исключением является dataInputStream.read (readData), который является iot.android.com.iott.connection.TcpConnection.readDataBlock (TcpConnection.java:134).Кто-нибудь сталкивался с этим, любая помощь будет оценена!
readDataBlock выполняется в методе run, readDataBlock в основном используется для чтения данных:
while(connect){ dataInputStream.read(readData);}. //connect true:connect,false:disconnect
Похоже, это связано с мобильными телефонами,Мой мобильный телефон Android 8.1.0 сообщит о вышеупомянутом исключении, но с помощью теста мобильного телефона 8.0 проблем не возникнет.