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(); } }
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(); } }