public void Listen(int u) { try { tcpListener = new TcpListenerEx(IPAddress.Parse(IP), Port); tcpListener.Start(); Debug.WriteLine("Сервер запущен."); while (true) { TcpClient tcpClient = tcpListener.AcceptTcpClient(); ClientObject clientObject = new ClientObject(tcpClient, this); //clientObject.setReceiveOut(receiveOut); //clientObject.setId(clientObject.GetMessage()); Thread clientThread = new Thread(new ThreadStart(clientObject.Process)); clientThread.Start(); } } catch (Exception ex) { Debug.WriteLine(ex.Message); Disconnect(); } }
private void backgroundWorker1_DoWork(object sender, System.ComponentModel.DoWorkEventArgs e) { IPEndPoint ep = e.Argument as IPEndPoint; TcpListenerEx listener = new TcpListenerEx(ep); if (!listener.Active) { listener.Start(); } while (true) { try { const int byteSize = 1024 * 1024; byte[] message = new byte[byteSize]; using (var s = listener.AcceptTcpClient()) { s.GetStream().Read(message, 0, byteSize); //obtaining network stream and receiving data through .Read() message = cleanMessage(message); string g = System.Text.Encoding.UTF8.GetString(message); backgroundWorker1.ReportProgress(0, g); } } catch { } finally { listener.Stop(); } } }
public void Listen() { try { tcpListener = new TcpListenerEx(IPAddress.Parse(IP), Port); tcpListener.Start(); Debug.WriteLine("Сервер запущен."); while (true) { TcpClient tcpClient = tcpListener.AcceptTcpClient(); ClientObject clientObject = new ClientObject(tcpClient, this); AddConnection(clientObject); } } catch (Exception ex) { Debug.WriteLine(ex.Message); Disconnect(); } }
private void StartListening() { try { listener = new TcpListenerEx(localEndPoint); listener.Start(); Runner.Primary(() => OnStartListening.Invoke()); // An incoming connection needs to be processed. client = listener.AcceptTcpClient(); client.ReceiveBufferSize = Int32.MaxValue; networkStream = client.GetStream(); AcceptConnection(); } catch (Exception e) { Console.WriteLine(e.ToString() + "Line 79"); } Console.WriteLine("\nPress ENTER to continue..."); //Console.Read(); }
private void HandleClient(Object state) { using (var client = _listener.AcceptTcpClient()) using (var ns = client.GetStream()) { if (ns.CanTimeout) { ns.ReadTimeout = Timeout * 1000; ns.WriteTimeout = Timeout * 1000; } var endPoint = client.Client.RemoteEndPoint as IPEndPoint; var clientAddress = endPoint != null? endPoint.Address.ToString() + ":" + endPoint.Port.ToString() : null; Message = "Connected: " + clientAddress; try { var isDisconnected = false; while (!isDisconnected && client.GetState() == TcpState.Established && _listener.Active) { Thread.Sleep(100); if (!ns.DataAvailable) { continue; } ChatMessage message = new ChatMessage(); using (var ms = new MemoryStream()) { var receiveBuffer = new byte[BufferSize]; do { var receiveSize = ns.Read(receiveBuffer, 0, receiveBuffer.Length); if (receiveSize == 0) { isDisconnected = true; break; } ms.Write(receiveBuffer, 0, receiveSize); } while (ns.DataAvailable); if (!isDisconnected) { message = ChatMessage.FromBytes(ms.GetBuffer()); } } var response = this.NotifyMessageReceived(message); if (!isDisconnected) { var bytes = response.ToBytes(); ns.Write(bytes, 0, bytes.Length); } } } catch (Exception ex) { var socketException = ex.InnerException as SocketException; var message = socketException == null? ex.GetAllMessages() : ((SocketError)socketException.ErrorCode).ToString() + ": " + clientAddress; Message = message; } Message = "Disconnected: " + clientAddress; } }