コード例 #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();
     }
 }
コード例 #2
0
 private void Listen()
 {
     Debug.WriteLineIf(DccUtil.DccTrace.TraceInfo, "[" + Thread.CurrentThread.Name + "] DccChatSession::Listen()");
     try
     {
         //Wait for remote client to connect
         IPEndPoint localEndPoint = new IPEndPoint(DccUtil.LocalHost(), listenPort);
         server    = new TcpListener(localEndPoint);
         listening = true;
         server.Start();
         //Got one!
         client = server.AcceptTcpClient();
         server.Stop();
         listening = false;
         Debug.WriteLineIf(DccUtil.DccTrace.TraceInfo, "[" + Thread.CurrentThread.Name + "] DccChatSession::Listen() Remote user connected.");
         if (OnChatSessionOpened != null)
         {
             OnChatSessionOpened(this);
         }
         //Start listening for messages
         ReceiveMessages();
     }
     catch (Exception)
     {
         Debug.WriteLineIf(DccUtil.DccTrace.TraceInfo, "[" + Thread.CurrentThread.Name + "] DccChatSession::Listen() Connection broken");
     }
     finally
     {
         SendClosedEvent();
     }
 }