Как в UWP (universal windows platform) работать с сокетами? Есть документация Microsoft:
https://docs.microsoft.com/ru-ru/windows/uwp/networking/sockets
внедряю в проект код "эхо-сервера TCP" ничего не работает(знаю, что на локальном устройстве не работает т.к для общения приложений существуют другие способы). Пытался подключиться к серверу через работающую программу на Android(делал я, она рабочая) - ничего не происходит. Необходимо по локальной сети отправлять файлы, но без сервера/клиента - невозможно. Есть рабочие варианты кода для консольных программ. С UWP не работал раньше, а работал с WPF. Кто сталкивался с этим прошу помощи. Буду очень благодарен.
public async void TCPServer()
{
//проблема в данном методе
try
{
//Создать StreamSocketListener, чтобы начать прослушивание для TCP-соединений.
Windows.Networking.Sockets.StreamSocketListener socketListener = new Windows.Networking.Sockets.StreamSocketListener();
//Подключить обработчик событий для вызова при получении соединения.
socketListener.ConnectionReceived += SocketListener_ConnectionReceived;
//Начать прослушивание для входящих TCP-соединения на указанный порт. Вы можете указать любой порт, что в настоящее время не используется.
await socketListener.BindServiceNameAsync("1818");
}
catch (Exception e)
{
//Handle exception.
}
}
private async void SocketListener_ConnectionReceived(Windows.Networking.Sockets.StreamSocketListener sender,
Windows.Networking.Sockets.StreamSocketListenerConnectionReceivedEventArgs args)
{
byte[] fileNameByte = Encoding.ASCII.GetBytes(filename);
byte[] fileData = File.ReadAllBytes(filepath + filename);
byte[] clientData = new byte[4 + fileNameByte.Length + fileData.Length];
byte[] fileNameLen = BitConverter.GetBytes(fileNameByte.Length);
fileNameLen.CopyTo(clientData, 0);
fileNameByte.CopyTo(clientData, 4);
fileData.CopyTo(clientData, 4 + fileNameByte.Length);
Stream outStream1 = args.Socket.OutputStream.AsStreamForWrite();
StreamWriter writer1 = new StreamWriter(outStream1);
await writer1.WriteLineAsync(Convert.ToChar(fileData));
await writer1.FlushAsync();
}
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники