初学者,始终无法连接到处于外网的服务器,求助
用PC平台的软件测试过外网连接服务器成功,但换成安卓平台运行安卓虚拟机时就连接不成功
安卓连接外网时需要修改什么吗?和连接局域网内的有什么不同?
代码有写错吗?
另,被人说代码写的不规范,求指教,我好改正~public class MainActivity extends Activity {
private EditText username =null;//声明用户名编辑框,用于用户输入用户名
private EditText password =null;//声明密码编辑框,用于用户输入密码
private PrintWriter out=null; 
private BufferedReader in=null;
private String string="";


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button1=(Button)findViewById(R.id.button1);
username=(EditText)findViewById(R.id.editText1);
password=(EditText)findViewById(R.id.editText2);
Log.d("TCP","Scoket1");

button1.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v)
{
     
Log.d("TCP","Scoket2");
Socket socket=null;//声明套接字类
String uname=username.getText().toString();//获取用户名
String pword=password.getText().toString();//获取密码
String message ="Login,"+uname+","+pword;  try{
    Log.d("TCP","Scoket3");
    socket = new Socket("180.160.183.**",1230);//服务器端口号
            Log.d("TCP", "C: Connecting...");
    PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())),true);//向服务器发送消息,使用套接字的输出流构造对象
if(socket.isConnected()){
     Log.d("TCP","Scoket连接成功");
     out.println(message);//将用户名和密码发送到服务器
Log.d("TCP","成功发送用户名密码");
}
BufferedReader in= new BufferedReader(new InputStreamReader(socket.getInputStream()));//接收来自服务器的消息,使用套接字的输入流构造对象
String msg = in.readLine(); 
if ( msg != null )  
                                        {  
Log.d("TCP", msg);
                                        }  
                                        else  
                                        {  
                                             Log.d("TCP", "数据错误!");  
                                         }  
                                          //关闭流   
                                        out.close();
                                        in.close();
                                         //关闭Socket   
                                         socket.close();  }
catch (Exception e)
{
e.printStackTrace();//打印异常

}
});
 
} @Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}

}安卓客户端连接外网服务器Android服务器socket