UWP StreamSocket connectAsync с другим NetworkINterface (Windows to VM Ware Network) - PullRequest
0 голосов
/ 29 августа 2018

Я хотел бы связаться с C # клиентским сокетом UWP в Windows (хост) с Java-сервером (на гостевой виртуальной машине Debian) .

  • В Windows я использую локальную сеть. Мой адрес адрес 192.168.36.1. Локальный IP-адрес моего компьютера 192.168.36.119. Я использую интерфейс Ethernet.
  • В Debian Virtual (на VMWare) я использую конфигурацию сети NAT, мой адресный класс - 192.168.73.1. IP моего компьютера 192.168.73.129. Я использую сетевой адаптер VMware VMnet8.

  • Я думаю, что StreamSocket не может выйти из сетевого интерфейса Ethernet (.36) для подключения к сетевому интерфейсу VMWare в (.73)

  • Сервер работает хорошо. Я также могу легко найти его в Google Chrome, и я протестировал его с помощью Telnet в Windows.

Вот мой пример тестового кода, я пытаюсь подключиться к серверному сокету 192.168.73.129:8082. Это работает очень хорошо, когда сервер Java работает на Windows (с моими окнами IP).

private async void StartClient()
    {
        try
        {
            string result = string.Empty;

            // Create the StreamSocket and establish a connection to the echo server.
            using (var streamSocket = new Windows.Networking.Sockets.StreamSocket())
            {
                // The server hostname that we will be establishing a connection to. In this example, the server and client are in the same process.
                var hostName = new Windows.Networking.HostName("192.168.73.129");

                this.clientListBox.Items.Add("client is trying to connect...");

                //await streamSocket.ConnectAsync(endPointPair);
                await streamSocket.ConnectAsync(hostName, PortNumber);

                this.clientListBox.Items.Add("client connected");

                // Send a request to the echo server.
                string request = "Hello, World!";
                using (Stream outputStream = streamSocket.OutputStream.AsStreamForWrite())
                {
                    using (var streamWriter = new StreamWriter(outputStream))
                    {
                        await streamWriter.WriteLineAsync(request);
                        await streamWriter.FlushAsync();
                    }
                }
            }
        }
        catch (Exception ex)
        {
            Windows.Networking.Sockets.SocketErrorStatus webErrorStatus = Windows.Networking.Sockets.SocketError.GetStatus(ex.GetBaseException().HResult);
            this.clientListBox.Items.Add(webErrorStatus.ToString() != "Unknown" ? webErrorStatus.ToString() : ex.Message);
        }
    }
 }

Как мне добраться до сокета сервера в VMWare Debian?

...