StreamSocket.ConnectAsync,ReadAsync和WriteAsync具有接受CancellationTokenSource但不接受UpgradeToSslAsync的重载。我该如何克服这一点?或者,它是否有意和超时的概念对SSL握手(至少在UWP应用程序中)没有意义,我应该仅仅依靠默认行为?如何在UWP应用中为StreamSocket.UpgradeToSslAsync设置超时时间?
0
A
回答
1
StreamSocket.ConnectAsync,ReadAsync和WriteAsync有重载接受CancellationTokenSource
其实,所有的StreamSocket
的ConnectAsync
重载方法不接受CancellationToken
参数。另外,我没有找到的ReadAsync
和WriteAsync
方法。通常我们使用DataReader或StreamReader来读取输入流StreamSocket
。
我们可以为您提到的连接创建一个CancellationToken
,这是用于超时监控和取消连接。但是我们通过WindowsRuntimeSystemExtensions.AsTask
方法来设置此异步操作作为任务,然后给出CancellationToken
。示例代码类似如下:
socket = new StreamSocket();
HostName hostName = new HostName(host);
CancellationTokenSource _cts = new CancellationTokenSource();
_cts.CancelAfter(5000);
// Connect to the server
await socket.ConnectAsync(hostName, port).AsTask(_cts.Token);
return true;
所以对于UpgradeToSslAsync
方法,你也可以让它的任务,并给予CancellationToken
如下:
await socket.UpgradeToSslAsync(SocketProtectionLevel.PlainSocket, hostName).AsTask(cancellationToken);
相关问题
- 1. 如何为PhantomJS设置超时时间?
- 2. 如何在Google App Engine中为urlfetch设置超时时间?
- 3. 如何在PostgreSQL中为独占锁定设置超时时间
- 4. Libtorrent如何设置超时时间?
- 5. 如何设置Socket.ConnectAsync的超时时间?
- 6. 如何设置ProxyAgent的超时时间?
- 7. 如何设置OCILogon2的超时时间?
- 8. 如何在AFNetworking中使用AFHTTPClient设置超时时间?
- 9. 在simple_html_dom中设置超时时间
- 10. 如何为每个硒测试用例设置超时时间?
- 11. 为NetworkObject.MapNetworkDrive设置超时时间
- 12. 如何为SOAP调用设置超时
- 13. 如何在Asterisk中设置FastAGI的超时时间
- 14. 如何在php中设置不同的超时时间限制?
- 15. 如何在Node中设置http.request()的超时时间?
- 16. 如何在Alamofire 3.0中设置客户端超时时间ios
- 17. 如何在Node.js中设置http.createClient的超时时间?
- 18. 如何在C#中设置超时时间
- 19. 如何在Windows Phone 8中设置RestClient的超时时间?
- 20. 如何在Oracle MAF中设置RestServiceAdapter的超时时间?
- 21. 如何在Spring MVC/tomcat中设置超时时间
- 22. 如何设置在java中下载文件的超时时间?
- 23. 如何在android中设置超时时间
- 24. 如何在php中设置会话超时时间?
- 25. 如何在MvvmCross.Plugins.Network.Rest中设置超时时间?
- 26. 如何在Python中设置SocketServer的超时时间?
- 27. 如何在ColdFusion无响应时在IIS 6中设置超时
- 28. 如何使用geo.js设置查找位置的超时时间?
- 29. 在org.apache.commons.io.FileUtils.copyURLToFile上设置超时时间?
- 30. 在jQuery上设置超时时间.load
我的坏,看起来像我混了StreamSocket方法和Stream方法。现在一切都很清楚,谢谢。 – Alex