Beispiel #1
0
        private async Task ConnectInternalAsync(IPEndPoint ip)
        {
            if (Sock.Connected)
            {
                Sock.Disconnect(true);
                Stream = null;
                Reader = null;
            }

#if NETCOREAPP
            await Sock.ConnectAsync(ip);
#else
            var tcs = new TaskCompletionSource <bool>();
            var sae = new SocketAsyncEventArgs();
            sae.RemoteEndPoint = ip;
            sae.Completed     += (s, e) =>
            {
                tcs.SetResult(true);
            };

            if (Sock.ConnectAsync(sae))
            {
                await tcs.Task;
            }
#endif
            Stream = new NetworkStream(Sock);
            Reader = new StreamReader(Stream, Encoding.UTF8, false, 1024, true);
        }