============问题描述============
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方法里面~
时间: 2024-10-28 13:11:28