Exemple #1
0
 private void TCPCopy(NetworkStream remoteStream, NetworkStream localStream)
 {
     new Thread(() =>
     {
         byte[] temp = new byte[1316];
         while (this.IsRunning)
         {
             try
             {
                 int size = localStream.Read(temp, 0, temp.Length);
                 if (size <= 0)
                 {
                     break;
                 }
                 remoteStream.Write(temp, 0, size);
             }
             catch (Exception ex)
             {
                 SocketException socEx = ex.InnerException as SocketException;
                 if (socEx == null)
                 {
                     break;
                 }
                 if (socEx.SocketErrorCode != SocketError.TimedOut)
                 {
                     break;
                 }
             }
         }
         remoteStream.DoDispose();
         localStream.DoDispose();
     }).Start();
 }
Exemple #2
0
        private void DoTCP()
        {
            TcpClient     remote       = null;
            TcpClient     local        = null;
            NetworkStream remoteStream = null;
            NetworkStream localStream  = null;

            try
            {
                remote = this.createRemoteClient();
                local  = this.createLocalClient();
                remote.ReceiveTimeout = local.ReceiveTimeout = 5000;
                remoteStream          = remote.GetStream();
                localStream           = local.GetStream();
                this.TCPCopy(remoteStream, localStream);
                this.TCPCopy(localStream, remoteStream);
            }
            catch (Exception ex)
            {
                //Console.WriteLine(ex.Message);
                remoteStream.DoDispose();
                localStream.DoDispose();
                remote.DoDispose();
                local.DoDispose();
            }
        }