Невозможно установить соединение, потому что целевая машина активно отказалась от него - TCP - PullRequest
0 голосов
/ 04 мая 2020

Мне нужна помощь в моей ситуации. Erorr: «Невозможно установить соединение, поскольку целевая машина активно отказывала в этом» при запуске client.Connect (). Спасибо!

private void btnSend_Click(object sender, EventArgs e)
    {

        IPAddress ipAddress = IPAddress.Parse("127.0.0.1");
        IPEndPoint ipEndPoint = new IPEndPoint(ipAddress, 8979);

        Socket client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP );
        client.Connect(ipEndPoint);


        Byte[] data = System.Text.Encoding.ASCII.GetBytes("Hello server\n");
        client.Send(data);


        data = System.Text.Encoding.ASCII.GetBytes("quit\n");
        client.Send(data);

        client.Close();
    }

И это код сервера, я проверил его с помощью te lnet, и он хорошо работает.

private void btnListen_Click(object sender, EventArgs e)
    {
        Thread serverThread = new Thread(StartUnsafeThread);
        serverThread.Start();
    }

    void StartUnsafeThread()
    {
        int bytesReceived = 0;
        byte[] recv = new byte[1];

        Socket clientSocket;

        Socket listenerSocket = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);

        IPEndPoint ipepServer = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 8979);
        listenerSocket.Bind(ipepServer);

        listenerSocket.Listen(-1);

        clientSocket = listenerSocket.Accept();

        showCommand("New client connected");
        while (clientSocket.Connected)
        {
            string text = "";
            do
            {
                bytesReceived = clientSocket.Receive(recv);
                text += Encoding.UTF8.GetString(recv);
            } while (text[text.Length - 1] != '\n');
            showCommand(text);
        }
        listenerSocket.Close();
    }

1 Ответ

0 голосов
/ 05 мая 2020

Я бы порекомендовал вам попробовать официальный пример кода Microsoft (с их подробным объяснением) для asyn c сервер сокетов

Сервер: https://docs.microsoft.com/en-us/dotnet/framework/network-programming/asynchronous-server-socket-example

Клиент: https://docs.microsoft.com/en-us/dotnet/framework/network-programming/asynchronous-client-socket-example

...