Вы можете сделать это с помощью класса Socket .Net или работать с более удобным классом TcpClient.
Во-первых, вам нужно выяснить, с каким сервером вы собираетесь общаться. Это HTTP-сервер или FTP-сервер? Как HTTP, так и FTP являются протоколами уровня приложений, которые реализованы поверх (с использованием) сокетов, которые на самом деле являются интерфейсом транспортного уровня.
Ваш локальный IP-адрес или адрес маршрутизатора действительно не имеет значения. Однако вам необходимо знать IP-адрес удаленного хоста, к которому вы собираетесь подключиться. Вы можете получить это по телефону:
IPHostEntry host;
host = Dns.GetHostEntry(hostname);
Вы также можете подумать о других проблемах при работе с сокетами, таких как использование тайм-аутов для маскировки сбоя, возможность возобновления загрузки / выгрузки при передаче больших файлов и т. Д. Если вы проводите какое-то время, просматривая сеть, вам следует сможете найти HTTP / API-интерфейсы более высокого уровня, которые позволят вам гораздо легче работать с файлами.
Судя по вашему вопросу, вы, кажется, довольно плохо знакомы с сокетами, поэтому чтение this может также помочь