【发布时间】:2018-05-17 23:26:27
【问题描述】:
我是使用 java 套接字的新手。我有一个我无法解决的问题。 我有一个具有公共 IP 的服务器,在它上面执行 java 服务器,然后我有一个 android 应用程序客户端。 使用套接字从客户端与服务器进行通信,当我尝试以相反的方式进行时,问题就来了。 我尝试从服务器向客户端发送确认消息。 我尝试多少次都没关系,因为我总是会遇到这个错误:
java.net.ConnectException:连接被拒绝:连接
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at java.net.Socket.connect(Socket.java:538)
at java.net.Socket.<init>(Socket.java:434)
at java.net.Socket.<init>(Socket.java:211)
at server.ServerEntrada.run(ServerEntrada.java:48)
at java.lang.Thread.run(Thread.java:748)
我打开了路由器端口 9000 和 9001。
客户端通过9000端口发送数据,服务器接收。 然后服务器在应用程序等待时通过端口 9001 发送它们
【问题讨论】:
-
您是否在清单中添加了
android.permission.INTERNET权限? -
是的,当然,我可以连接服务器并发送数据,但我不能从服务器向客户端发送数据
-
您在客户端连接后发送数据?由于异常名称,您似乎正在尝试连接到可能尚未侦听或隐藏在 NAT 后面的客户端。
-
我将数据发送到服务器,然后,在客户端我有这个代码: Log.i("A","Server entrada esperando ------"); socketEntrada=serverEntrada.accept();我可以看到它正在等待,然后在我将客户端发送到服务器时发送数据,但我得到了那个错误
-
将代码添加到问题中,不要放在 cmets 部分。