java Android telnet客户端,几秒钟后读取停止
我正在尝试在安卓中实现一个telnet客户端,它将持续从telnet服务器读取数据。我已经通过play store的telnet应用连接到服务器,验证了服务器是否在持续发送数据
现在,我正在尝试创建一个应用程序,使用apache telnetclient在屏幕上显示数据。我已成功连接到telnet服务器,并且能够在5-10秒内读取正确的线路。代码发布在下面
什么有效:
- 连接到服务器李>
- 在流停止之前,阅读一些行5-10秒李>
问题是:
- 读数似乎在5-10秒后停止,并挂在readLine()上,没有新数据输入。这是代码的问题吗?任何帮助都将不胜感激李>
更新:
我试图在安卓4.2.2设备上运行这个。我刚刚在一台新的安卓7设备上试用过,代码按预期运行,我得到了连续的读数。安卓版本中有什么东西会导致这种情况吗
--
这是TestTelnetClient。班级
public class TestTelnetClient extends Activity {
private TelnetClient telnet = new TelnetClient();
private InputStream in;
private PrintStream out;
private String server = "192.168.36.105";
TextView outputView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
outputView = (TextView)findViewById(R.id.output);
}
public void sendTelnet(View view) {
TelnetRead telnetRead = new TelnetRead();
telnetRead.execute();
}
private class TelnetRead extends AsyncTask<String, String, String> {
@Override
protected String doInBackground(String... params) {
try {
// Connect to the specified server
telnet.connect(server, 8110);
// Get input and output stream references
in = telnet.getInputStream();
//out = new PrintStream(telnet.getOutputStream());
BufferedReader r = new BufferedReader(new InputStreamReader(in));
String aad = r.readLine();
while (true) {
publishProgress(aad);
aad = r.readLine();
}
//telnet.disconnect();
//finish();
//return aad;
//return "exit";
}
catch (Exception e) {
e.printStackTrace();
return e.toString();
}
}
@Override
protected void onPostExecute(String result) {
try {
outputView.setText(result);
Thread.sleep(10);
} catch (InterruptedException e) {
Thread.interrupted();
}
}
@Override
protected void onPreExecute() {
}
//@Override
protected void onProgressUpdate(String... result) {
outputView.setText(result[0]);
}
}
这是安卓清单
<?xml version="1.0" encoding="utf-8"?>
<uses-permission 安卓:name="安卓.permission.INTERNET"/>
<application
安卓:allowBackup="true"
安卓:icon="@mipmap/ic_launcher"
安卓:label="@string/app_name"
安卓:roundIcon="@mipmap/ic_launcher_round"
安卓:supportsRtl="true"
安卓:theme="@style/AppTheme">
<activity
安卓:name=".TestTelnetClient"
安卓:screenOrientation="portrait">
<intent-filter>
<action 安卓:name="安卓.intent.action.MAIN" />
<category 安卓:name="安卓.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
共 (0) 个答案