Я был бы признателен за помощь или помощь с проблемой, которую я испытываю. Я надеюсь разработать приложение, которое обеспечит поток моего рабочего стола из .NET-программы в программу Windows 10 UWP (.NETCore).Bitmap Stream TCPClient to StreamSocketListener
Я создал это приложение как обычная форма Windows, следуя эту логику:
Клиент:
- объект Bitmap используется для захвата рабочего стола.
- BinaryFormatter для сериализации растрового изображения.
- TCPClient отправляет данные через TCP.
Сервер:
- TcpListener принимает данные.
- Поток десериализуется с использованием BinaryFormatter.
- Растровое изображение представлено в изображении.
Я хотел бы воссоздать серверную часть вещей как UWP. Мне удалось добиться успешного TCP-соединения с помощью StreamSocketListener без проблем, но я, похоже, не понимаю, как заменить BinaryFormatter в UWP. Мой текущий подход заключается в использовании DataReader для чтения в потоке байтов, но я не могу понять концепцию, чтобы получить полное изображение растрового изображения, чтобы снова собрать его. Любые советы по этому поводу будут оценены. Я включил фрагменты Client/Server ниже:
Клиент:
private void SendDeskTopImageOverTCP()
{
BinaryFormatter binFormatter = new BinaryFormatter();
mainStream = client.GetStream();
// Get Desktop bitmap and send over TCP Stream.
binFormatter.Serialize(mainStream, GetDesktopBitmap());
}
Сервер:
// What do we do when a connection is made?
private async void OnConnection(StreamSocketListener sender, StreamSocketListenerConnectionReceivedEventArgs args)
{
// Indicate Connection Received!
Debug.WriteLine("Connection Received!");
// Data Stream Reader
DataReader reader = new DataReader(args.Socket.InputStream);
// Wait until one or more bytes available
reader.InputStreamOptions = InputStreamOptions.Partial;
// Load data from the input stream
await reader.LoadAsync(200);
while (reader.UnconsumedBufferLength > 0)
{
await reader.LoadAsync(200);
//View byte stream??
Debug.WriteLine(reader.ReadByte());
}
Мои извинения, если это является прямой проблемой, я старался изо всех сил следуйте документации и искать по всему миру по аналогичной проблеме, но я не сталкивался с этим. Поэтому любая помощь будет оценена по достоинству.
Это еще проблема? – czifro