Example #1
0
 public virtual void setOwner(ClientInterface _owner)
 {
     if (owner == null)
     {
         owner = _owner;
     }
 }
Example #2
0
        public void handleClient(object arg)
        {
            client = (TcpClient)arg;
            byte[] rcvbuff = new byte[BUFSIZE];
            byte[] rplybuff;
            int    bytesrcvd = 0;
            int    totbytes  = 0;

            connStream = client.GetStream();
            string commandString = "";
            string loc;


            rcvbuff = Enumerable.Repeat((byte)0, rcvbuff.Length).ToArray();
            //Read the command string from the client (guarded against giant command strings);
            while ((bytesrcvd = connStream.Read(rcvbuff, 0, rcvbuff.Length)) > 0 && totbytes < MAXSIZE)
            {
                loc            = Encoding.UTF8.GetString(rcvbuff);
                commandString += loc;
                Console.WriteLine(loc);
                if (loc.Contains("\0"))
                {
                    break;
                }
                rcvbuff   = Enumerable.Repeat((byte)0, rcvbuff.Length).ToArray();
                totbytes += bytesrcvd;
            }
            Console.WriteLine("Command String: '" + commandString + "'");
            //Send response.
            try {
                clientTasks = ClientInterface.parseCommandString(commandString.Replace("\0", "").Trim());
            } catch (ArgumentException ae) {
                rplybuff = Encoding.UTF8.GetBytes(ae.Message);
                Console.WriteLine(ae.Message);
                Console.WriteLine(ae.StackTrace);
                connStream.Write(rplybuff, 0, rplybuff.Length);
            }
            if (clientTasks != null)
            {
                foreach (Task t in clientTasks)
                {
                    t.setOwner(this);
                    creator.queue(t);
                }
                rplybuff = Encoding.UTF8.GetBytes("Tasks Queued\n");
                connStream.Write(rplybuff, 0, rplybuff.Length);
            }
            taskcount = clientTasks.Length;
        }
Example #3
0
 public virtual void setOwner(ClientInterface _owner)
 {
     if(owner == null){
         owner = _owner;
     }
 }