为什么尝试使用安卓studio java web服务器连接到pc上的服务器i';我出错了?

为什么尝试使用安卓studio java web服务器连接到pc上的服务器i';我出错了?,java,android,sockets,android-studio,Java,Android,Sockets,Android Studio,在我的电脑上,我正在运行一个web服务器。然后,在我的android设备中,使用android studio中的代码,我试图通过网络WiFi连接到pc web服务器 我的android设备已经通过WiFi连接到网络。 我知道我电脑的IP地址 这位于main活动的顶部 private String[] ipaddresses = new String[]{ "http://192.168.1.10:8098/?cmd=nothing", "http:

在我的电脑上,我正在运行一个web服务器。然后,在我的android设备中,使用android studio中的代码,我试图通过网络WiFi连接到pc web服务器

我的android设备已经通过WiFi连接到网络。 我知道我电脑的IP地址

这位于
main活动的顶部

private String[] ipaddresses = new String[]{
            "http://192.168.1.10:8098/?cmd=nothing",
            "http://10.0.0.1:8098/?cmd=nothing",
            "http://10.0.0.138:8098/?cmd=nothing"};
onCreate中

@Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        addListenerOnButton();
        currentActivity = this;
        initTTS();
    }
然后是
addListenerOnButton()

在我的android设备中,当运行程序并单击按钮时,我得到错误/异常:

05-13 08:03:56.055 8930-12196/com.web_server.webserver W/System.err: java.net.SocketException: socket failed: EACCES (Permission denied)
05-13 08:03:56.061 8930-12196/com.web_server.webserver W/System.err:     at libcore.io.IoBridge.socket(IoBridge.java:623)
05-13 08:03:56.061 8930-12196/com.web_server.webserver W/System.err:     at java.net.PlainSocketImpl.create(PlainSocketImpl.java:198)
05-13 08:03:56.061 8930-12196/com.web_server.webserver W/System.err:     at java.net.Socket.checkOpenAndCreate(Socket.java:687)
05-13 08:03:56.061 8930-12196/com.web_server.webserver W/System.err:     at java.net.Socket.setSoTimeout(Socket.java:541)
05-13 08:03:56.061 8930-12196/com.web_server.webserver W/System.err:     at com.android.okhttp.Connection.connect(Connection.java:147)
05-13 08:03:56.061 8930-12196/com.web_server.webserver W/System.err:     at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:276)
05-13 08:03:56.061 8930-12196/com.web_server.webserver W/System.err:     at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:211)
05-13 08:03:56.061 8930-12196/com.web_server.webserver W/System.err:     at com.android.okhttp.internal.http.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:373)
05-13 08:03:56.061 8930-12196/com.web_server.webserver W/System.err:     at com.android.okhttp.internal.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:323)
05-13 08:03:56.061 8930-12196/com.web_server.webserver W/System.err:     at com.android.okhttp.internal.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:190)
05-13 08:03:56.061 8930-12196/com.web_server.webserver W/System.err:     at com.web_server.webserver.MainActivity.Get(MainActivity.java:324)
05-13 08:03:56.061 8930-12196/com.web_server.webserver W/System.err:     at com.web_server.webserver.MainActivity.access$300(MainActivity.java:34)
05-13 08:03:56.061 8930-12196/com.web_server.webserver W/System.err:     at com.web_server.webserver.MainActivity$1$1.run(MainActivity.java:94)
05-13 08:03:56.061 8930-12196/com.web_server.webserver W/System.err:     at java.lang.Thread.run(Thread.java:818)
05-13 08:03:56.061 8930-12196/com.web_server.webserver W/System.err: Caused by: android.system.ErrnoException: socket failed: EACCES (Permission denied)
05-13 08:03:56.062 8930-12196/com.web_server.webserver W/System.err:     at libcore.io.Posix.socket(Native Method)
05-13 08:03:56.062 8930-12196/com.web_server.webserver W/System.err:     at libcore.io.BlockGuardOs.socket(BlockGuardOs.java:282)
05-13 08:03:56.062 8930-12196/com.web_server.webserver W/System.err:     at libcore.io.IoBridge.socket(IoBridge.java:608)
05-13 08:03:56.062 8930-12196/com.web_server.webserver W/System.err:    ... 13 more
05-13 08:03:56.063 8930-12196/com.web_server.webserver W/System.err: java.net.SocketException: socket failed: EACCES (Permission denied)
05-13 08:03:56.063 8930-12196/com.web_server.webserver W/System.err:     at libcore.io.IoBridge.socket(IoBridge.java:623)
05-13 08:03:56.063 8930-12196/com.web_server.webserver W/System.err:     at java.net.PlainSocketImpl.create(PlainSocketImpl.java:198)
05-13 08:03:56.063 8930-12196/com.web_server.webserver W/System.err:     at java.net.Socket.checkOpenAndCreate(Socket.java:687)
05-13 08:03:56.063 8930-12196/com.web_server.webserver W/System.err:     at java.net.Socket.setSoTimeout(Socket.java:541)
05-13 08:03:56.063 8930-12196/com.web_server.webserver W/System.err:     at com.android.okhttp.Connection.connect(Connection.java:147)
05-13 08:03:56.063 8930-12196/com.web_server.webserver W/System.err:     at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:276)
05-13 08:03:56.063 8930-12196/com.web_server.webserver W/System.err:     at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:211)
05-13 08:03:56.063 8930-12196/com.web_server.webserver W/System.err:     at com.android.okhttp.internal.http.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:373)
05-13 08:03:56.063 8930-12196/com.web_server.webserver W/System.err:     at com.android.okhttp.internal.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:323)
05-13 08:03:56.063 8930-12196/com.web_server.webserver W/System.err:     at com.android.okhttp.internal.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:190)
05-13 08:03:56.063 8930-12196/com.web_server.webserver W/System.err:     at com.web_server.webserver.MainActivity.Get(MainActivity.java:324)
05-13 08:03:56.063 8930-12196/com.web_server.webserver W/System.err:     at com.web_server.webserver.MainActivity.access$300(MainActivity.java:34)
05-13 08:03:56.064 8930-12196/com.web_server.webserver W/System.err:     at com.web_server.webserver.MainActivity$1$1.run(MainActivity.java:94)
05-13 08:03:56.064 8930-12196/com.web_server.webserver W/System.err:     at java.lang.Thread.run(Thread.java:818)
05-13 08:03:56.064 8930-12196/com.web_server.webserver W/System.err: Caused by: android.system.ErrnoException: socket failed: EACCES (Permission denied)
05-13 08:03:56.064 8930-12196/com.web_server.webserver W/System.err:     at libcore.io.Posix.socket(Native Method)
05-13 08:03:56.064 8930-12196/com.web_server.webserver W/System.err:     at libcore.io.BlockGuardOs.socket(BlockGuardOs.java:282)
05-13 08:03:56.064 8930-12196/com.web_server.webserver W/System.err:     at libcore.io.IoBridge.socket(IoBridge.java:608)
05-13 08:03:56.064 8930-12196/com.web_server.webserver W/System.err:    ... 13 more
05-13 08:03:56.069 8930-12196/com.web_server.webserver W/System.err: java.net.SocketException: socket failed: EACCES (Permission denied)
05-13 08:03:56.069 8930-12196/com.web_server.webserver W/System.err:     at libcore.io.IoBridge.socket(IoBridge.java:623)
05-13 08:03:56.069 8930-12196/com.web_server.webserver W/System.err:     at java.net.PlainSocketImpl.create(PlainSocketImpl.java:198)
05-13 08:03:56.069 8930-12196/com.web_server.webserver W/System.err:     at java.net.Socket.checkOpenAndCreate(Socket.java:687)
05-13 08:03:56.069 8930-12196/com.web_server.webserver W/System.err:     at java.net.Socket.setSoTimeout(Socket.java:541)
05-13 08:03:56.069 8930-12196/com.web_server.webserver W/System.err:     at com.android.okhttp.Connection.connect(Connection.java:147)
05-13 08:03:56.069 8930-12196/com.web_server.webserver W/System.err:     at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:276)
05-13 08:03:56.069 8930-12196/com.web_server.webserver W/System.err:     at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:211)
05-13 08:03:56.069 8930-12196/com.web_server.webserver W/System.err:     at com.android.okhttp.internal.http.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:373)
05-13 08:03:56.069 8930-12196/com.web_server.webserver W/System.err:     at com.android.okhttp.internal.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:323)
05-13 08:03:56.069 8930-12196/com.web_server.webserver W/System.err:     at com.android.okhttp.internal.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:190)
05-13 08:03:56.069 8930-12196/com.web_server.webserver W/System.err:     at com.web_server.webserver.MainActivity.Get(MainActivity.java:324)
05-13 08:03:56.069 8930-12196/com.web_server.webserver W/System.err:     at com.web_server.webserver.MainActivity.access$300(MainActivity.java:34)
05-13 08:03:56.069 8930-12196/com.web_server.webserver W/System.err:     at com.web_server.webserver.MainActivity$1$1.run(MainActivity.java:94)
05-13 08:03:56.069 8930-12196/com.web_server.webserver W/System.err:     at java.lang.Thread.run(Thread.java:818)
05-13 08:03:56.069 8930-12196/com.web_server.webserver W/System.err: Caused by: android.system.ErrnoException: socket failed: EACCES (Permission denied)
05-13 08:03:56.070 8930-12196/com.web_server.webserver W/System.err:     at libcore.io.Posix.socket(Native Method)
05-13 08:03:56.070 8930-12196/com.web_server.webserver W/System.err:     at libcore.io.BlockGuardOs.socket(BlockGuardOs.java:282)
05-13 08:03:56.070 8930-12196/com.web_server.webserver W/System.err:     at libcore.io.IoBridge.socket(IoBridge.java:608)
05-13 08:03:56.070 8930-12196/com.web_server.webserver W/System.err:    ... 13 more
第324行是:

InputStream in = new BufferedInputStream(urlConnection.getInputStream());
第34行:

public class MainActivity extends ActionBarActivity
第94行

response = Get(ipaddresses[i]);

解决方案是将这3行添加到AndroidManifest.xml中

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


为什么在一个循环中使用三个ip?你甚至不知道是哪个ip引起了麻烦。你认为我们能看到吗?“String[]ipaddress”。你不是把ip地址放进去,而是把url放进去。您可以用这种方式编写不可读的代码。它已经把我弄糊涂了。
response = Get(ipaddresses[i]);
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />