有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

线程中的java安卓socket连接

我想通过socket连接收听和阅读短消息(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 ...
    }
}

共 (0) 个答案