Java 线程中的Android套接字连接

Java 线程中的Android套接字连接,java,android,sockets,Java,Android,Sockets,我想通过套接字连接收听和阅读短消息(4-10个字符长)。我的应用已成功连接到服务器,但连接似乎未保持。我从未看到服务器发送的消息:-/ public class MainScreen extends AppCompatActivity { private ServerSocket serverSocket; private Socket socket; Handler updateConversationHandler; Thread serverThread = null; priva

我想通过套接字连接收听和阅读短消息(4-10个字符长)。我的应用已成功连接到服务器,但连接似乎未保持。我从未看到服务器发送的消息:-/

public class MainScreen extends AppCompatActivity {

private ServerSocket serverSocket;
private Socket socket;

Handler updateConversationHandler;

Thread serverThread = null;

private TextView text;

public static final int SERVERPORT = 1111;
Thread commThread;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main_screen);
    /*
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    getSupportActionBar().setDisplayShowTitleEnabled(false);

   */

    updateConversationHandler = new Handler();

    this.commThread = new Thread(new CommunicationThread());
    this.commThread.start();


    FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
    fab.setOnClickListener(new View.OnClickListener() {
        @Override

        public void onClick(View view) {

            Snackbar.make(view, "Communication should be openend", Snackbar.LENGTH_LONG)
                    .setAction("Action", null).show();
        }
    });
}

class CommunicationThread implements Runnable {

    private Socket clientSocket;
    private BufferedReader input;


    public void run() {

        while (true) {

            try {
                socket = new Socket("10.0.1.1", 1111);
                this.input = new BufferedReader(new InputStreamReader(socket.getInputStream(), "UTF-8"));

                String read = input.readLine();

                updateConversationHandler.post(new updateUIThread(read));

            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

}

class updateUIThread implements Runnable {
    private String msg;

    public updateUIThread(String str) {
        this.msg = str;
    }

    @Override
    public void run() {
      Log.v("Blub", msg);
      // here should be some Work on the UI ...
    }
}

只是一个提示,我会尝试记录字符串“read”,看看它是否有那么远。你是如何发送数据的?readLine()将在返回前等待行终止符。请记住,它在stream.osw.write(“Open”,0,4)的末尾返回null;osw.flush();osw.close();我正在从APP-->Server(服务器反应)写入此数据,并以相同的方式将其发送给我的客户端尝试将其更改为“osw.write”(“打开\n”,0,5);“\n是换行符。就是这样…:),现在我的应用程序正在识别这些命令。非常感谢。只是一个提示,我会尝试记录字符串“read”,看看它是否有那么远。你是如何发送数据的?readLine()将在返回前等待行终止符。请记住,它在stream.osw.write(“Open”,0,4)的末尾返回null;osw.flush();osw.close();我正在从APP-->Server(服务器反应)写入此数据,并以相同的方式将其发送给我的客户端尝试将其更改为“osw.write”(“打开\n”,0,5);“\n是换行符。就是这样…:),现在我的应用程序正在识别这些命令。非常感谢。