diff --git a/shadowsocks-csharp/Util/Sockets/WrappedSocket.cs b/shadowsocks-csharp/Util/Sockets/WrappedSocket.cs index 2f3aa4719..0ef07912d 100644 --- a/shadowsocks-csharp/Util/Sockets/WrappedSocket.cs +++ b/shadowsocks-csharp/Util/Sockets/WrappedSocket.cs @@ -42,7 +42,10 @@ public void BeginConnect(EndPoint remoteEP, AsyncCallback callback, object state arg.Completed += OnTcpConnectCompleted; arg.UserToken = new TcpUserToken(callback, state); - Socket.ConnectAsync(SocketType.Stream, ProtocolType.Tcp, arg); + if(!Socket.ConnectAsync(SocketType.Stream, ProtocolType.Tcp, arg)) + { + OnTcpConnectCompleted(this, arg); + } } private class FakeAsyncResult : IAsyncResult