Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.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
Android客户端中的连接被拒绝_Android_Sockets_Client - Fatal编程技术网

Android客户端中的连接被拒绝

Android客户端中的连接被拒绝,android,sockets,client,Android,Sockets,Client,目前,我正在开发android移动客户端服务器应用程序,该应用程序使用套接字与服务器通信。当我在家使用WIFI测试时,该应用程序按预期工作。但当我开始在其他有活动WIFI的地方测试它时,插座就无法与服务器建立连接。我收到“拒绝连接”例外,尽管我在清单中声明了互联网许可,并且WIFI正在工作。这很奇怪,但每当我用Java客户端测试套接字时,就会在任何有活动WIFI的地方成功建立连接。但当我尝试在Android上做同样的事情时,我得到了“连接被拒绝”的例外 错误发生在此处: socket = new

目前,我正在开发android移动客户端服务器应用程序,该应用程序使用套接字与服务器通信。当我在家使用WIFI测试时,该应用程序按预期工作。但当我开始在其他有活动WIFI的地方测试它时,插座就无法与服务器建立连接。我收到“拒绝连接”例外,尽管我在清单中声明了互联网许可,并且WIFI正在工作。这很奇怪,但每当我用Java客户端测试套接字时,就会在任何有活动WIFI的地方成功建立连接。但当我尝试在Android上做同样的事情时,我得到了“连接被拒绝”的例外

错误发生在此处:

socket = new Socket(SERVERIP, SERVERPORT);
<uses-permission android:name="android.permission.INTERNET" />
09-24 12:06:43.000: E/ClientSocket(21999): C: Connecting...
09-24 12:06:43.020: E/TCP(21999): C: Error
09-24 12:06:43.020: E/TCP(21999): java.net.ConnectException: /78.47.105.119:2012 - Connection refused
09-24 12:06:43.020: E/TCP(21999):   at org.apache.harmony.luni.net.PlainSocketImpl.connect(PlainSocketImpl.java:207)
09-24 12:06:43.020: E/TCP(21999):   at org.apache.harmony.luni.net.PlainSocketImpl.connect(PlainSocketImpl.java:183)
09-24 12:06:43.020: E/TCP(21999):   at java.net.Socket.startupSocket(Socket.java:724)
09-24 12:06:43.020: E/TCP(21999):   at java.net.Socket.tryAllAddresses(Socket.java:150)
09-24 12:06:43.020: E/TCP(21999):   at java.net.Socket.<init>(Socket.java:209)
09-24 12:06:43.020: E/TCP(21999):   at java.net.Socket.<init>(Socket.java:176)
我在清单中有以下权限:

socket = new Socket(SERVERIP, SERVERPORT);
<uses-permission android:name="android.permission.INTERNET" />
09-24 12:06:43.000: E/ClientSocket(21999): C: Connecting...
09-24 12:06:43.020: E/TCP(21999): C: Error
09-24 12:06:43.020: E/TCP(21999): java.net.ConnectException: /78.47.105.119:2012 - Connection refused
09-24 12:06:43.020: E/TCP(21999):   at org.apache.harmony.luni.net.PlainSocketImpl.connect(PlainSocketImpl.java:207)
09-24 12:06:43.020: E/TCP(21999):   at org.apache.harmony.luni.net.PlainSocketImpl.connect(PlainSocketImpl.java:183)
09-24 12:06:43.020: E/TCP(21999):   at java.net.Socket.startupSocket(Socket.java:724)
09-24 12:06:43.020: E/TCP(21999):   at java.net.Socket.tryAllAddresses(Socket.java:150)
09-24 12:06:43.020: E/TCP(21999):   at java.net.Socket.<init>(Socket.java:209)
09-24 12:06:43.020: E/TCP(21999):   at java.net.Socket.<init>(Socket.java:176)

LogCat:

socket = new Socket(SERVERIP, SERVERPORT);
<uses-permission android:name="android.permission.INTERNET" />
09-24 12:06:43.000: E/ClientSocket(21999): C: Connecting...
09-24 12:06:43.020: E/TCP(21999): C: Error
09-24 12:06:43.020: E/TCP(21999): java.net.ConnectException: /78.47.105.119:2012 - Connection refused
09-24 12:06:43.020: E/TCP(21999):   at org.apache.harmony.luni.net.PlainSocketImpl.connect(PlainSocketImpl.java:207)
09-24 12:06:43.020: E/TCP(21999):   at org.apache.harmony.luni.net.PlainSocketImpl.connect(PlainSocketImpl.java:183)
09-24 12:06:43.020: E/TCP(21999):   at java.net.Socket.startupSocket(Socket.java:724)
09-24 12:06:43.020: E/TCP(21999):   at java.net.Socket.tryAllAddresses(Socket.java:150)
09-24 12:06:43.020: E/TCP(21999):   at java.net.Socket.<init>(Socket.java:209)
09-24 12:06:43.020: E/TCP(21999):   at java.net.Socket.<init>(Socket.java:176)
09-2412:06:43.000:E/ClientSocket(21999):C:正在连接。。。
09-24 12:06:43.020:E/TCP(21999):C:错误
09-24 12:06:43.020:E/TCP(21999):java.net.ConnectException:/78.47.105.119:2012-连接被拒绝
09-24 12:06:43.020:E/TCP(21999):位于org.apache.harmony.luni.net.PlainSocketImpl.connect(PlainSocketImpl.java:207)
09-24 12:06:43.020:E/TCP(21999):位于org.apache.harmony.luni.net.PlainSocketImpl.connect(PlainSocketImpl.java:183)
09-24 12:06:43.020:E/TCP(21999):位于java.net.Socket.startupSocket(Socket.java:724)
09-24 12:06:43.020:E/TCP(21999):位于java.net.Socket.tryalladdress(Socket.java:150)
09-24 12:06:43.020:E/TCP(21999):位于java.net.Socket(Socket.java:209)
09-24 12:06:43.020:E/TCP(21999):位于java.net.Socket(Socket.java:176)

也许我应该设置在清单中声明的某种特殊或额外权限?防火墙会导致此问题吗?有什么办法可以解决这个问题吗?

您正在使用模拟器吗? 有时,您需要重定向端口

试着用你的设备测试你的代码(你可以用它作为Eclipse的“模拟器”)


不要忘记,根据Emulator Networking,如果您在本地开发服务器,应该使用IP 10.0.2.2而不是localhost/127.0.0.1。

我也遇到了类似的问题。它显示了相同的日志。我发现这是因为我在两个系统上使用了不同的ip地址。我在localhost(或127.0.0.1)上启动了服务器,并尝试使用客户端(192.168.1.6)上的计算机ip地址连接到它。当我将两个ip地址都设置为192.168.1.6时,它就工作了。

我正在实际设备上测试它。