在Windows Phone 8.1应用程序中,我必须创建以下套接字。我如何更改它,以便可以指定超时时间?
_socket = new StreamSocket();
await _socket.ConnectAsync(hostName, port.ToString(), SocketProtectionLevel.PlainSocket);
await _socket.InputStream.ReadAsync(frameLenData, frameLenData.Capacity, Windows.Storage.Streams.InputStreamOptions.None);
在我之前的 Windows Phone 代码中,我会创建 Socket 并通过测试 _event.WaitOne(timeout)
来设置超时时间,例如:
timeout = 5000;
_event = new ManualResetEvent(false);
_socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
bool bOperationFailed = false;
SocketAsyncEventArgs socketEventArg = new SocketAsyncEventArgs();
socketEventArg.RemoteEndPoint = new DnsEndPoint(address, port);
_event.Reset();
_socket.ReceiveAsync(socketEventArg);
// Wait for completion
if (_event.WaitOne(timeout) == false)
{
Trace.trace("timed out");
return false;
}
我可以为StreamSocket
的ConnectAsync()
设置超时时间吗?如果可以,应该如何操作?
await _socket.InputStream.ReadAsync
也适用吗? - DaveDev