StreamSocketListener
을 사용하여 포트 연결을 기다리고 있습니다. 나는 그것이 영원히 듣기를 원하지 않는다. 그것은 다음과 같은 코드를 사용하고있는 초 수를 특정 시간 후에 취소해야한다.작업이 지정된 시간 초과 후 취소되지 않았습니다.
remoteListener = new StreamSocketListener();
try
{
CancellationTokenSource ctsTimeout = new CancellationTokenSource();
ctsTimeout.CancelAfter(1000); // in milliseconds
await remoteListener.BindServiceNameAsync(receivingPortForRemoteRequests.ToString()).AsTask(ctsTimeout.Token);
remoteListener.ConnectionReceived += remoteListener_ConnectionReceived;
}
catch (Exception exc) // supposed to produce a TaskCanceledException
{
isCancelled = true;
}
내 문제는이 코드는 시간의 간격 후 Exception
을 던져 결코이지만, 단지 듣기 유지합니다. 이 코드는 this MSDN page에서 찾은 내용을 기반으로합니다.
내가 뭘 잘못하고 있는지 아는 사람이 있습니까? 미리 감사드립니다!
나는 꺼져있을 수도 있지만 connectasync의 일부 형식이 필요하지 않습니까? 또는 StreamSocketConnectOperation (ctsTimeout.token을 매개 변수로 사용) – GamerJ5
@ GamerJ5 포트에서 TCP 연결을 수신합니다. 'ConnectionReceived' 이벤트에서, 입출력 스트림을 통해 클라이언트에 읽고 쓸 수있는'StreamSocket'을 얻습니다. 그것은 괜찮아, 난 그냥 시간 초과 후 해당 포트에서 수신을 중지 얻을 수 없습니다 작동합니다. –
@ GamerJ5 : "연결"작업은 클라이언트에 의해 시작됩니다. 위의 코드는 서버에서 가져온 것입니다. –