Каким образом можно отправить сообщение (пакет) на другой компьютер, используя статические IP-адреса, с помощью C#?

Как можно отправить сообщение (пакет) на другой компьютер, используя C#, если оба компьютера имеют серые IP-адреса, находятся в разных локальных сетях, но подключены к интернету, и известны статические IP-адреса друг друга заранее?
  • 29 декабря 2023 г. 18:57
Ответы на вопрос 2
Для отправки сообщения на другой компьютер с использованием статических IP-адресов в C#, можно использовать классы TcpClient и TcpListener из пространства имен System.Net.Sockets.

Для отправки сообщения (пакета) на другой компьютер, используя статический IP-адрес, необходимо выполнить следующие шаги:

1. Создайте экземпляр класса TcpClient, указав IP-адрес и порт удаленного компьютера:

```csharp
TcpClient client = new TcpClient();
IPAddress remoteIpAddress = IPAddress.Parse("статический_IP_адрес_удаленного_компьютера");
int remotePort = порт_удаленного_компьютера;

// Подключение к удаленному компьютеру
client.Connect(remoteIpAddress, remotePort);
```

2. Получите поток для записи данных на удаленный компьютер:

```csharp
NetworkStream stream = client.GetStream();
```

3. Запишите сообщение (пакет) в поток:

```csharp
string message = "Ваше сообщение";
byte[] data = Encoding.UTF8.GetBytes(message);

// Запись данных в поток
stream.Write(data, 0, data.Length);
```

4. Закройте соединение с удаленным компьютером:

```csharp
client.Close();
```

Важно отметить, что для успешной отправки сообщения на удаленный компьютер, на удаленном компьютере должен быть запущен серверный процесс, который прослушивает указанный порт и обрабатывает полученные данные.

Если оба компьютера имеют серые IP-адреса и находятся в разных локальных сетях, но подключены к интернету, для обмена сообщениями между ними можно использовать технику пересылки портов (port forwarding) на роутере, который находится в локальной сети каждого компьютера. Это позволит перенаправить входящие подключения на указанный порт на одном роутере на IP-адрес и порт другого роутера, и наоборот. Таким образом, оба компьютера смогут взаимодействовать напрямую через статические IP-адреса.

ни как. от слова совсем ни как ... 
но можно опробовать:
- покупку внешних ip у провайдеров (потом изучение проброса на роутерах..
- https://ngrok.com/ .. но скорость будет не высока.. зато даром...
Похожие вопросы