SocketException: программное обеспечение вызвало разрыв соединения - PullRequest
0 голосов
/ 28 апреля 2019

Я столкнулся с этим исключением: 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 проблем не возникнет.

...