Java Соединение с сокетом отказано в Windows Сервер 2019 (localhost) - PullRequest
0 голосов
/ 13 апреля 2020

Follow сообщение об ошибке отображается, когда я использую свой клиент для подключения к сокету сервера

java.net.ConnectException: Connection refused: connect

Я попытался найти все вопросы в Stackoverflow об этой ошибке, но я не смог решить эту проблему.

Это мой код подключения к серверу:

String id1 = "", id2 = "";
String pw1 = "", pw2 = ""; 
String msgin1 = ""; 
String msgin2 = ""; 
String prevmsgin1 = ""; 
String prevmsgin2 = ""; 
int login1 = 0, login2 = 0; 
try
{
    ss = new ServerSocket(1009);
    ss1 = new ServerSocket(1099);
    s = ss.accept();
    s1 = ss1.accept();
    din1 = new DataInputStream(s.getInputStream());
    din2 = new DataInputStream(s1.getInputStream());
    dout1 = new DataOutputStream(s.getOutputStream()); 
    dout2 = new DataOutputStream(s1.getOutputStream());
    while(!msgin1.equals("exit") || !msgin2.equals("exit"))
    {
        msgin1 = din1.readUTF();
        msgin2 = din2.readUTF();
        if(msgin1.startsWith("L#") == true && login1 == 0) //login prefix L#
        {
            msgin1 = msgin1.substring(2); 
            String[] parts = msgin1.split("#"); //msgin1 split by #
            id1 = parts[0];
            pw1 = parts[1];
            if(fcs.Search(id1, pw1) == 1) //search DB and finds same credential
            {
                dout1.writeUTF("LOK"); 
                login1 = 1; 
            }
            if(fcs.Search(id1, pw1) == 9) //search DB and find not same credential 
            {
                dout1.writeUTF("LNO");
            }
        }
        if(msgin2.startsWith("L#") == true && login2 == 0) //login prefix L# 
        {
            msgin2 = msgin2.substring(2); 
            String[] parts = msgin2.split("#"); //msgin2 split by #
            id2 = parts[0];
            pw2 = parts[1];
            if(fcs.Search(id2, pw2) == 1) //search DB and finds same credential 
            {
                dout2.writeUTF("LOK"); 
                login1 = 1; 
            }
            if(fcs.Search(id2, pw2) == 9) //search DB and finds not same credential 
            {
                dout2.writeUTF("LNO");
            }
        }
        if(login1 == 1 && login2 == 1)
        {
            if(msgin2 != prevmsgin2) //if new message received from client 2 -> send to client 1
            {
                dout1.writeUTF(msgin2); 
                prevmsgin2 = msgin2; 
            }
            if(msgin1 != prevmsgin1) //if new message received from client 1 -> send to client 2 
            {
                dout2.writeUTF(msgin1);
                prevmsgin1 = msgin1; 
            }
        }
    }
}
catch(Exception e)
{

}

А это мой код подключения к клиенту:

try{
   s=new Socket("127.0.0.1",1009);
   din = new DataInputStream(s.getInputStream());
   dout = new DataOutputStream(s.getOutputStream());
}catch(Exception e)
{
    JOptionPane.showMessageDialog(null, "Error3:"+e, "InfoBox: ERROR1", JOptionPane.INFORMATION_MESSAGE);
}

Этот код выполняется на локальном хосте, и я открыл все мои порты в Windows Дополнительные настройки Защитника.

Пожалуйста, помогите мне ... Я действительно нуб к Java языку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...