线程中的Android套接字连接

时间:2015-11-17 20:41:23

标签: java android sockets

我想通过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 个答案:

没有答案