package com.example.administrator.phoneserver;import android.os.AsyncTask;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;import org.w3c.dom.Text;import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;public class MainActivity extends AppCompatActivity {    private EditText etUsername;
    private EditText etPassword;
    private TextView tvResult;    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        etUsername=(EditText) findViewById(R.id.et_account);
        etPassword=(EditText)findViewById(R.id.et_password);
        tvResult=(TextView)findViewById(R.id.tv_result);        Button btnRegister=(Button) findViewById(R.id.btn_register);
        btnRegister.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v){
                if(!TextUtils.isEmpty(etUsername.getText().toString())
                        &&!TextUtils.isEmpty(etPassword.getText().toString())){
                    Log.e("TISHI:","都不空");
                    register(etUsername.getText().toString(),etPassword.getText().toString());
                }else{
                    Toast.makeText(MainActivity.this,"账号密码都不能为空",Toast.LENGTH_SHORT).show();
                }
            }
        });        Button btnLogin=(Button)findViewById(R.id.btn_login);
        btnLogin.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v){
                if(!TextUtils.isEmpty(etUsername.getText().toString())
                        &&!TextUtils.isEmpty(etPassword.getText().toString())){
                    Log.e("TISHI:","都不空");
                    login(etUsername.getText().toString(),etPassword.getText().toString());
                }else{
                    Toast.makeText(MainActivity.this,"账号密码都不能为空",Toast.LENGTH_SHORT).show();
                }
            }
        });
    }    private void register(String username,String password){
        String registerUrlStr=Constant.URL_Register+"?username="+username+"&password="+password;    }    private void login(String username,String password){
        String loginUrlStr=Constant.URL_Login+"?username="+username+"&password="+password;
        requestUsingHttpURLConnection(loginUrlStr);
    }    private Handler handler = new Handler(){
        @Override
        public void handleMessage(Message msg) {
            if(msg.what == 1){
                tvResult.setText(msg.obj.toString());
            }
        }
    };    private void requestUsingHttpURLConnection( final String urlstr) {
        // 网络通信属于典型的耗时操作,开启新线程进行网络请求
        new Thread(new Runnable() {
            @Override
            public void run() {
                HttpURLConnection connection = null;
                try {
                    URL url = new URL(urlstr);
                    connection = (HttpURLConnection) url.openConnection(); 
                    connection.setRequestMethod("GET"); 
                    connection.setConnectTimeout(8000); 
                    connection.setReadTimeout(8000); 
                    InputStream in = connection.getInputStream();  
                    BufferedReader reader = new BufferedReader(new InputStreamReader(in));
                    StringBuilder response = new StringBuilder();
                    String line;
                    while ((line = reader.readLine()) != null){
                        response.append(line);
                    }
                    Message msg = new Message();
                    msg.what = 1;
                    msg.obj = response.toString();
                    Log.e("WangJ", response.toString());
                    handler.sendMessage(msg);                } catch (MalformedURLException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }).start();
    }
}logcat:
05-23 10:41:00.446 1630-1783/com.example.administrator.phoneserver W/System.err: java.net.SocketTimeoutException: connect timed out
05-23 10:41:00.446 1630-1783/com.example.administrator.phoneserver W/System.err:     at java.net.PlainSocketImpl.socketConnect(Native Method)
05-23 10:41:00.446 1630-1783/com.example.administrator.phoneserver W/System.err:     at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:334)
05-23 10:41:00.446 1630-1783/com.example.administrator.phoneserver W/System.err:     at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:196)
05-23 10:41:00.446 1630-1783/com.example.administrator.phoneserver W/System.err:     at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:178)
05-23 10:41:00.446 1630-1783/com.example.administrator.phoneserver W/System.err:     at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:356)
05-23 10:41:00.446 1630-1783/com.example.administrator.phoneserver W/System.err:     at java.net.Socket.connect(Socket.java:592)
05-23 10:41:00.446 1630-1783/com.example.administrator.phoneserver W/System.err:     at com.android.okhttp.internal.Platform.connectSocket(Platform.java:113)
05-23 10:41:00.446 1630-1783/com.example.administrator.phoneserver W/System.err:     at com.android.okhttp.Connection.connectSocket(Connection.java:196)
05-23 10:41:00.446 1630-1783/com.example.administrator.phoneserver W/System.err:     at com.android.okhttp.Connection.connect(Connection.java:172)
05-23 10:41:00.446 1630-1783/com.example.administrator.phoneserver W/System.err:     at com.android.okhttp.Connection.connectAndSetOwner(Connection.java:367)
05-23 10:41:00.446 1630-1783/com.example.administrator.phoneserver W/System.err:     at com.android.okhttp.OkHttpClient$1.connectAndSetOwner(OkHttpClient.java:130)
05-23 10:41:00.446 1630-1783/com.example.administrator.phoneserver W/System.err:     at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:329)
05-23 10:41:00.446 1630-1783/com.example.administrator.phoneserver W/System.err:     at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:246)
05-23 10:41:00.446 1630-1783/com.example.administrator.phoneserver W/System.err:     at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:457)
05-23 10:41:00.446 1630-1783/com.example.administrator.phoneserver W/System.err:     at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:405)
05-23 10:41:00.446 1630-1783/com.example.administrator.phoneserver W/System.err:     at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:243)
05-23 10:41:00.446 1630-1783/com.example.administrator.phoneserver W/System.err:     at com.example.administrator.phoneserver.MainActivity$4.run(MainActivity.java:100)
05-23 10:41:00.446 1630-1783/com.example.administrator.phoneserver W/System.err:     at java.lang.Thread.run(Thread.java:776)他的意思是: InputStream in = connection.getInputStream();这一句 connected time out
真机连接了电脑的wifi 一切配置正常

解决方案 »

  1.   

    tomcat 一直显示这个
    但是什么都能访问 会不会和这个有关系
      

  2.   

    mysql需要配置,默认只有本地可登陆,未开放外部IP访问,自行百度,而且看你使用root+密码并不能登录到数据库
    即使你和电脑在同一网段,也需要通过ip去访问你的电脑服务器,服务器的地址为电脑内网IP,而不是localhost或者127.0.0.1
      

  3.   

     liunx 安装 mysql
    估计这个可以帮助你
      

  4.   

    我已经在mysql中
    mysql> GRANT ALL PRIVILEGES ON *.* TO 'waynesee'@'%' IDENTIFIED BY '171936' WITH GRANT OPTION;
    mysql> flush privileges;
    并且这个密码可以登录
    这个是服务器端访问数据库的:
    需要把localhost改为内网ip吗
    这个是客户端的:
    而且他说要注释my.ini中的bind-address 可是我的my.ini中找不见