Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Socket android客户端PC服务器_Java_Android_Sockets_Client - Fatal编程技术网

Java Socket android客户端PC服务器

Java Socket android客户端PC服务器,java,android,sockets,client,Java,Android,Sockets,Client,我无法将android客户端连接到PC服务器 这是密码 -->PC服务器: public class Server { public static void main(String[] args) throws IOException, SQLException, ClassNotFoundException { ServerSocket server = new ServerSocket(4444); System.out.println("Waiting for clien

我无法将android客户端连接到PC服务器 这是密码

-->PC服务器:

public class Server {

public static void main(String[] args) throws IOException, SQLException, ClassNotFoundException
{

   ServerSocket server = new ServerSocket(4444);

   System.out.println("Waiting for clients to connect...");

   while (true)
   {
      Socket s = server.accept();
      InetAddress clientAddress = s.getInetAddress();
      System.out.println("Incoming connection from: " + clientAddress.getHostName() + "[" + clientAddress.getHostAddress() + "]");

      s.close();
   }
}
}

--->ANDROID客户端:

public class Main extends Activity {

Button b;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    b = (Button)findViewById(R.id.connect);
    b.setOnClickListener(new View.OnClickListener(){

        @Override
        public void onClick(View arg0) {

            try {
                 Socket client = new Socket("10.0.2.2", 4444); //connect to server

                 client.close();   //closing the connection

                } catch (UnknownHostException e) {
                 e.printStackTrace();
                } catch (IOException e) {
                 e.printStackTrace();
            }

        }

    });

}
当我在安卓设备上单击服务器程序(PC)中的按钮时,无法查看设备连接…为什么?我试着插入

<uses-permission android:name="android.permission.INTERNET"></uses-permission>

进入我的AndroidManifest但当我点击按钮时程序崩溃 Android设备和PC连接到同一网络(路由器DSL)


请帮帮我

您使用的地址是
10.0.2.2
,属于私人地址

您应该使用设备可以解析的地址。在可从您的手机访问的DNS中发布的DNS名称(即公共名称)或可路由IP。您的服务器应该可以通过公共网络访问,除非您特别注意,否则您的PC不太可能做到这一点-我不确定您的意思是什么:

Android设备和PC连接到同一网络(路由器DSL)


请看一看手机端抛出的异常,并用生成的堆栈跟踪编辑您的帖子。这将有助于进一步深入了解这一点。

10.0.2.2是一个地址,在模拟器中运行的应用程序使用该地址与在pc上运行的服务器连接。模拟器位于同一台pc上。如果使用真实设备,则必须使用pc的(W)LAN地址,该地址与设备位于同一WLAN中。通常是192.168.0.12。使用ipconfig查找。

您的套接字声明应如下所示:

Socket client = new Socket(10.0.2.2, 4444); //Quotes removed

我不知道需要在Socket client=newsocket(“,4444”)中插入什么ip地址;我的android设备和pc连接到同一个本地网络