public virtual void setOwner(ClientInterface _owner) { if (owner == null) { owner = _owner; } }
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; }
public virtual void setOwner(ClientInterface _owner) { if(owner == null){ owner = _owner; } }