Я хотел бы связаться с 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?