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