gpt4 book ai didi

c# - 如果连接意外断开,则无法处理SocketStream上的应用程序崩溃

转载 作者:行者123 更新时间:2023-12-03 12:09:25 25 4
gpt4 key购买 nike

我有一个Little工具,可以轻松地将文件从手机(Windows 10)传输到PC。只是一个文件,快速,无需连线,无需搜索文件夹。只需“与...共享”>,所有其他客户端将显示该文件以供下载。首先以Internet服务器作为“缓存”。现在,我将这个想法扩展到WLAN/LAN。我选择构建没有HTTP或FTP的自己的解决方案。 TCP/IP上只有字节。第一个测试解决方案效果很好。我在缓冲区,大小,连续流方面发挥了很多作用。我还在GarbageCollector中找到了一个不错的Little方法-现在,我的旧版慢速Lumia 640可以传输最大的文件,而不会耗尽内存(使用150 MB之前最大33MB到out_of_memory,完美的缓冲区大小使这款手机达到了我的WLAN的最大传输速率。不能相信,

但是有一件我无法处理的事情..

如果连接在应用程序的接收部分中意外掉落,这条线将强制执行
TaskAwaiter异常立即出现,看起来比我能处理的快得多。我尝试使用sync变体async,Task.Run(),TaskFactory.RunAsync进行所有操作。我从来没有见过UWP-App这么快崩溃
“inStream”基于意外的套接字连接和Excep。引发.CopyToAsync()。

如何自行处理TaskAwaiter异常,还是有其他方法?

private async void SocketListener_ConnectionReceived(Windows.Networking.Sockets.StreamSocketListener sender, Windows.Networking.Sockets.StreamSocketListenerConnectionReceivedEventArgs args)
{
socketListener.ConnectionReceived -= SocketListener_ConnectionReceived;
await this.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
{
tb_status.Text = "incoming Connection... receiving the file... Please wait until it´s done....";
});
try
{
Stopwatch stoppUhr = new Stopwatch();
stoppUhr.Start();

Stream inStream = args.Socket.InputStream.AsStreamForRead();
StorageFile outFile = await ApplicationData.Current.LocalCacheFolder.CreateFileAsync("theTestFile.wav", CreationCollisionOption.ReplaceExisting);
Stream fileWriteStream = await outFile.OpenStreamForWriteAsync();

在此情况下,在副本的此行出现异常-任务
await inStream.CopyToAsync(fileWriteStream);
fileWriteStream.Dispose();
inStream.Dispose();

double elapsedSeconds = stoppUhr.Elapsed.TotalSeconds;
stoppUhr.Stop();
stoppUhr = null;
double recSizeMB = (await outFile.GetBasicPropertiesAsync()).Size / 1024 / 1024;
double mBitPerSec = recSizeMB * 8 / elapsedSeconds;

最佳答案

**这是WINDOWS预览-问题.... :) THX助您一臂之力:) **

几天后,我的应用程序开始使用拳头Alpha-Launch了:))
QuickTransfer for OneDrive and LAN / WLAN (W10 UWP) - future-STORE link

for You :)

关于c# - 如果连接意外断开,则无法处理SocketStream上的应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43383102/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com