连接被拒绝:connect,java socket

时间:2018-05-17 23:26:28

标签: java android sockets

我是使用java socket的新手。我有一个问题,我无法解决。 我有一个带有公共IP的服务器,java服务器执行,然后我有一个Android应用程序客户端。 随着套接字我从客户端到服务器进行通信,当我尝试以相反的方式执行时问题就出现了。 我尝试从服务器向客户端发送确认消息。 我尝试了多少次并不重要,因为我总是遇到这个错误:

java.net.ConnectException:连接被拒绝:连接

my_graph = {}
with open("myfile.csv") as f:
    for l in f:
        split_lines = l.split(",")
        my_graph[int(split_lines[1])] = int(split_lines[2])

HYBAS_ID = 2120523430
current_hybas = my_graph[HYBAS_ID]
return_value = [HYBAS_ID]
while current_hybas != 0:
    return_value.append(current_hybas)
    current_hybas = my_graph[current_hybas]

print return_value

我有路由器端口9000和9001打开。

客户端通过端口9000发送数据,服务器将其重新发送。 然后,当应用程序等待

时,服务器通过端口9001发送它们

1 个答案:

答案 0 :(得分:0)

if(password.equals("asd")){
    System.out.println("Abriendo socket");
    socketSalida = new Socket(socketEntrada.getInetAddress().getHostAddress(),puertoSalida);
    DataOutputStream datosSalida = new DataOutputStream(socketSalida.getOutputStream());
    datosSalida.writeUTF("OK");
}

问题出在这里。您的服务器正在尝试连接到您的客户端,但它不能,因为您的客户端是客户端,而不是服务器。

它并不需要。它已经与客户端建立了连接,即从中读取密码的客户端。将其更改为:

if(password.equals("asd")){
    System.out.println("Abriendo socket");
    DataOutputStream datosSalida = new DataOutputStream(socketEntrada.getOutputStream());
    datosSalida.writeUTF("OK");
}