SocketException: не может быть установлено соединение, потому что целевая машина активно отказалась от него - PullRequest
0 голосов
/ 28 апреля 2018

Итак, я видел несколько вопросов по Stackoverflow, которые имеют к этому отношение, но (а) ни один из них не решил мою проблему, и (б) они не делали то, что я делал в большинстве из них. Итак, у меня есть клиентское и серверное приложения Windows Form, и я просто хочу подключить их. Вот код для сервера:

private void connectButton_Click(object sender, EventArgs e) {
    // Attempt to connect
    try {
        IPAddress ip = IPAddress.Parse(ipBox.Text);
        TcpListener listener = new TcpListener(ip, 8000);
        listener.Start();
        messageBox.Text = "Server started! Waiting for connection...";
        messageBox.Refresh();
        Socket socket = listener.AcceptSocket();
        messageBox.Text += "\nConnection accepted from " + socket.RemoteEndPoint;
    }
    catch (Exception eg) {
        messageBox.Text = Convert.ToString(eg);
    }
}

Все это прекрасно работает, я бы хотел больше рассказать о получении IP и так далее, но это довольно просто, и я уже знаю, что это работает. Поэтому, когда вы запускаете это и нажимаете кнопку подключения, он в основном отправляет сообщение, что он запущен. Вот код для клиента:

private void connectButton_Click(object sender, EventArgs e) {
    try {
        TcpClient tcp = new TcpClient();
        messageBox.Text = "Connecting....";
        messageBox.Refresh();
        tcp.Connect(ipBox.Text, 8001);
        messageBox.Text += "\nConnected!";
        messageBox.Refresh();
    }
    catch (Exception eg) {
        messageBox.Text += Convert.ToString(eg);
        messageBox.Refresh();
    }
}

Это посылает, что это соединяется, и затем несколько секунд спустя ошибка . Я слышал, это потому, что сервер не слушает (я уже пропустил программу через брандмауэр), но у меня это на сервере: Socket socket = listener.AcceptSocket();. Как я могу это исправить?

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