0
使用tcpClient.BeginConnect
會觸發異步回調,即使客戶端沒有任何連接。然後我得到一個關於嘗試.GetStream()
的例外。C#BeginConnect回調在未連接時觸發
public void SetupSocket() {
try {
tcpClient = new TcpClient();
tcpClient.BeginConnect(host, port, ConnectCallback, tcpClient);
Console.WriteLine("begin connect");
}
catch (Exception e) {
return;
}
}
private void ConnectCallback(IAsyncResult result) {
if (OnClientEvent != null)
OnClientEvent(this, new ClientEventArgs(Action.Connect));
Console.WriteLine("get stream");
stream = tcpClient.GetStream();
Console.WriteLine("got stream");
BeginReadAsync();
}
輸出get stream
然後約嘗試使用GetStream上TcpClient的連接之前異常。
你建議超時(和其他連接例外)的其他行爲?你是否期望即使頻道出現問題,你的回撥也不會被調用? –