求助!安卓客户端连接外网服务器遇到问题
初学者,始终无法连接到处于外网的服务器,求助用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 --------------------编程问答-------------------- 声明网络权限了没? --------------------编程问答-------------------- 我写了哦, 这个对吧?<uses-permission android:name="android.permission.INTERNET" /> --------------------编程问答--------------------
我写了哦, 这个对吧?<uses-permission android:name="android.permission.INTERNET" />
--------------------编程问答-------------------- 我也遇到这个问题了,一直都是用的真机,内网调试没有问题,外网就连接不上,用网络上下载的网络助手就能够连接,不知道是哪里少了什么东西,你解决了么 --------------------编程问答-------------------- 谁能告诉我怎样学习android ?我现在连 连接内网数据库都不会!
补充:移动开发 , Android