我制作了一个名为MyServerThread的类,其内容如下所示:
class MyServerThread implements Runnable{
Socket s;
ServerSocket ss;
InputStreamReader isr;
BufferedReader bufferedReader;
String message;
Handler handler = new Handler();
@Override
public void run() {
try {
ss = new ServerSocket(7801);
s = ss.accept();
isr = new InputStreamReader(s.getInputStream());
bufferedReader = new BufferedReader(isr);
message = bufferedReader.readLine();
handler.post(new Runnable() {
@Override
public void run() {
Toast.makeText(getApplicationContext(),message,Toast.LENGTH_LONG).show();
}
});
} catch (IOException e) {
e.printStackTrace();
}
}
}
然后我在该类的OnCreate中创建了一个新线程,但问题是,当我从PC发送消息时,该消息未显示在Toast中,但连接正常,如LogCat所示,正在关注
2018-10-01 16:01:41.289 26770-26889 / com.example.igardini.visualposmobile W / System.err: java.net.SocketException:连接重置2018-10-01 16:01:41.290 26770-26889 / com.example.igardini.visualposmobile W / System.err:在 java.net.SocketInputStream.read(SocketInputStream.java:200)2018年10月1日 16:01:41.290 26770-26889 / com.example.igardini.visualposmobile W / System.err:位于 java.net.SocketInputStream.read(SocketInputStream.java:120)2018年10月1日 16:01:41.290 26770-26889 / com.example.igardini.visualposmobile W / System.err:位于 sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:287)2018年10月1日 16:01:41.290 26770-26889 / com.example.igardini.visualposmobile W / System.err:位于 sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:350)2018年10月1日 16:01:41.290 26770-26889 / com.example.igardini.visualposmobile W / System.err:位于 sun.nio.cs.StreamDecoder.read(StreamDecoder.java:179)2018-10-01 16:01:41.291 26770-26889 / com.example.igardini.visualposmobile W / System.err:位于 java.io.InputStreamReader.read(InputStreamReader.java:184)2018年10月1日 16:01:41.291 26770-26889 / com.example.igardini.visualposmobile W / System.err:位于 java.io.BufferedReader.fill(BufferedReader.java:172)2018年10月1日 16:01:41.291 26770-26889 / com.example.igardini.visualposmobile W / System.err:位于 java.io.BufferedReader.readLine(BufferedReader.java:335)2018年10月1日 16:01:41.291 26770-26889 / com.example.igardini.visualposmobile W / System.err:位于 java.io.BufferedReader.readLine(BufferedReader.java:400)2018年10月1日 16:01:41.291 26770-26889 / com.example.igardini.visualposmobile W / System.err:位于 com.example.igardini.visualposmobile.pterm $ MyServerThread.run(pterm.java:3284) 2018-10-01 16:01:41.291 26770-26889 / com.example.igardini.visualposmobile W / System.err:在 java.lang.Thread.run(Thread.java:761)