[英]Android - inputStream.read() - I can not read anything
我从套接字读取数据时遇到问题。 我试图以不同的方式解决问题,我认为现在的代码是测试它的最简单方法。 Android有一个问题,需要从套接字读取并停止在此行(inStream.read())。 10s(socket.setSoTimeout)之后,我收到一条消息-------错误:null。 我想读取任何数据(0-255)或-1,但是什么也没发生。 在PHP(在我的服务器上,我的代码)和PC(而不是我的应用程序)中,一切都很好。 我该怎么办?
这是我的第一篇文章,对于可能出现的错误,我感到抱歉。 谢谢你的帮助!
try{
socket = new Socket( "192.168.0.150", 502 );
socket.setSoTimeout( 10000 );
outStream = new DataOutputStream( socket.getOutputStream() );
inStream = new DataInputStream( socket.getInputStream() );
System.out.println("----------" + outStream);
System.out.println("----------" + inStream );
outStream.write( 0x01 );
outStream.write( 0x03 );
outStream.write( 0x10 );
outStream.write( 0x00 );
outStream.write( 0x00 );
outStream.write( 0x04 );
outStream.write( 0x40 );
outStream.write( 0xC9 );
outStream.flush();
System.out.println("----------ok 1");
/////////////////////////////
// Thread.sleep( 50 );
System.out.println("----------Test1: " + socket.isConnected() );
System.out.println("----------Test2: " + socket.isInputShutdown() );
int dat = inStream.read();
System.out.println("----------ok2: " );
} catch( Exception e ){
e.printStackTrace(); // <-- edit
System.out.println( "----------Error: " + e.getMessage() );
}
------------
<uses-permission android:name = "android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name = "android.permission.UPDATE_DEVICE_STATS" />
<uses-permission android:name = "android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name = "android.permission.WAKE_LOCK" />
<uses-permission android:name = "android.permission.INTERNET" />
- 编辑 -
我的日志: http : //codepaste.net/eapot2
如果您有读取超时,则显然对等方未发送任何内容。
注意:“什么都没有发生”与“ Android崩溃”不同。 不要滥用标准术语。
将端口更改为1024-65565。 通常不允许使用端口502。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.