首页 > 代码库 > 安卓求解~

安卓求解~

============问题描述============


public class MainActivity extends Activity {
	
	private static final String LOG_TAG = "IP Test";
	private EditText chattxt;
	private TextView chattxt2;
	private Button chatok;
	
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		findviews();
		setonclick();
		chattxt2.setText(getLocalIpAddressV4());
	}

	public void findviews() {
//		chattxt = (EditText) this.findViewById(R.id.chattxt);
		chattxt2 = (TextView) this.findViewById(R.id.chattxt2);
		chatok = (Button) this.findViewById(R.id.chatOk);
	}

	private void setonclick() {
		chatok.setOnClickListener(new View.OnClickListener() {

			@Override
			public void onClick(View v) {
				try {
					connecttoserver("I‘m a client!");
//					connecttoserver(chattxt.getText().toString());
				} catch (UnknownHostException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		});
	}

	public void connecttoserver(String socketData) throws UnknownHostException,
			IOException {
		Socket socket = RequestSocket("10.13.33.136", 5000);// 程序一打开执行到这里就停止运行了,不知道为什么?手机连的是wifi,地址是10.24.28.139,网关10.24.16.1,电脑ip是10.13.33.136,网关是10.13.33.1,所以这里感觉应该是是不在一个导致的,但是为啥手机能打开我本机的网站,地址为:http://10.13.33.136:8080/phnt ps:网络学的不好~T_T
//		Socket socket = new Socket("10.13.33.136", 5000);
//		SendMsg(socket, socketData);
//		String txt = ReceiveMsg(socket);
//		this.chattxt2.setText(txt);
	}

	private Socket RequestSocket(String host, int port)
			throws UnknownHostException, IOException {
		Socket socket = new Socket(host, port);
		return socket;
	}

	private void SendMsg(Socket socket, String msg) throws IOException {
		BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(
				socket.getOutputStream()));
		writer.write(msg.replace("\n", " ") + "\n");
		writer.flush();
	}

	private String ReceiveMsg(Socket socket) throws IOException {
		BufferedReader reader = new BufferedReader(new InputStreamReader(
				socket.getInputStream()));

		String txt = reader.readLine();
		return txt;

	}

============解决方案1============


网络请求写线程里

============解决方案2============


android4.0以后的版本,不允许在UI线程中进行网络操作,网络操作应放子线程里,或AsyncTask中执行。

============解决方案3============


引用 6 楼 lionfresh 的回复:
android4.0以后的版本,不允许在UI线程中进行网络操作,网络操作应放子线程里,或AsyncTask中执行。


顶~

============解决方案4============


log里有提示不让在主线程访问网络!

============解决方案5============


new Thread(new Runnable(){
  public void run() {
       connecttoserver("I‘m a client!");
    }
}).start();
将这段代码放到你的onclick方法里面~

安卓求解~