Example #1
0
 private void Listen()
 {
     Debug.WriteLineIf(DccUtil.DccTrace.TraceInfo, "[" + Thread.CurrentThread.Name + "] DccFileSession::Listen()");
     try
     {
         //Wait for remote client to connect
         IPEndPoint localEndPoint = new IPEndPoint(DccUtil.LocalHost(), listenPort);
         serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
         serverSocket.Bind(localEndPoint);
         serverSocket.Listen(1);
         //Got one!
         socket = serverSocket.Accept();
         serverSocket.Close();
         Debug.WriteLineIf(DccUtil.DccTrace.TraceInfo, "[" + Thread.CurrentThread.Name + "] DccFileSession::Listen() Remote user connected.");
         //Advance to the correct point in the file in case this is a resume
         dccFileInfo.GotoReadPosition();
         SignalTransferStart();
         if (turboMode)
         {
             Upload();
         }
         else
         {
             UploadLegacy();
         }
     }
     catch (Exception)
     {
         Debug.WriteLineIf(Rfc2812Util.IrcTrace.TraceWarning, "[" + Thread.CurrentThread.Name + "] DccFileSession::Listen() Connection broken");
         Interrupted();
     }
 }