android中用socket 接收服务器的消息

socket 接收服务器消息

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.Socket;
import java.net.UnknownHostException;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

@SuppressLint("HandlerLeak")
public class SocketDemo extends Activity {
    /** Called when the activity is first created. */
    private Button btn_receive;
    private TextView txt;
    private String line;

    private static final String HOST = "192.168.1.101";
    private static final int PORT = 9999;


    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initControl();
    }

    private void initControl() {
        btn_receive = (Button) findViewById(R.id.btn_receive);
        txt = (TextView) findViewById(R.id.txt);
        btn_receive.setOnClickListener(new ReceiverListener());
    }


    @SuppressLint("HandlerLeak")
    class ReceiverListener implements OnClickListener {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            new Thread() {
                @Override
                public void run() {
                    // 执行完毕后给handler发送一个空消息
                    try {
                        // 实例化Socket
                        Socket socket = new Socket(HOST, PORT);
                        // 获得输入流
                        BufferedReader br = new BufferedReader(
                            new InputStreamReader(socket.getInputStream()));
                        line = br.readLine();
                        br.close();
                    } catch (UnknownHostException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                    handler.sendEmptyMessage(0);
                }
            } .start();
        }

    }

    // 定义Handler对象
    private Handler handler = new Handler() {
        @Override
        // 当有消息发送出来的时候就执行Handler的这个方法
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            // 处理UI
            txt.setText(line);
            Log.i("PDA", "----->" + line);
        }
    };

}

 转自云代码:yuncode.net/code/c_518ee8bc8b0ae74

猜你喜欢

转载自laoye4536.iteye.com/blog/1884686
今日推荐