Esempio n. 1
0
 /// <summary>
 /// Only for internal use
 /// </summary>
 /// <param name="client"></param>
 internal void RemoveClient(DeveConnectionStreamSocket client)
 {
     lock (clientConnections)
     {
         clientConnections.Remove(client);
     }
 }
Esempio n. 2
0
 public override void Start()
 {
     TcpClient client = new TcpClient();
     client.Connect(iporhost, port);
     connection = new DeveConnectionStreamSocket(client, this);
     connection.Start();
 }
Esempio n. 3
0
        private void Runner()
        {
            tcpListener.Start();

                while (!shouldShutdown)
                {
                    if (!tcpListener.Pending())
                    {
                        Thread.Sleep(100);
                    }
                    else
                    {
                        //blocks until a client has connected to the server
                        TcpClient client = tcpListener.AcceptTcpClient();
                        Console.WriteLine("Client connected");

                        DeveConnectionStreamSocket deveClientConnection = new DeveConnectionStreamSocket(client, this);
                        deveClientConnection.Start();

                        lock (clientConnections)
                        {
                            clientConnections.Add(deveClientConnection);
                        }

                        //Thread clientThread = new Thread(new ParameterizedThreadStart(HandleClientComm));
                        //clientThread.Start(client);
                    }
                }

                foreach (DeveConnectionStreamSocket deveClientConnection in clientConnections)
                {
                    deveClientConnection.Stop();
                }

                tcpListener.Stop();
        }
 public DeveIncomingMessageStreamSocket(DeveConnectionStreamSocket sender, byte[] bytes)
 {
     this.bytes = bytes;
     this.sender = sender;
     messageType = (DeveMessageTypeStreamSocket)ReadByte();
 }