public override void handlePOSTRequest(HttpProcessor p, StreamReader inputData) { //NA }
public override void handleGETRequest(HttpProcessor p) { // /zoom/x/y.png if (p.http_url.ToLower().EndsWith(".png")) { string[] parts = p.http_url.Split(new char[] { '/', '\\', '.' }, StringSplitOptions.RemoveEmptyEntries); _mapControlFactory.LastRequestedZoomLevel = int.Parse(parts[0]); BitmapImage bmpImg = _mapControlFactory.TileGenerator.GetTileImage(int.Parse(parts[0]), int.Parse(parts[1]), int.Parse(parts[2])); using (MemoryStream outStream = new MemoryStream()) { PngBitmapEncoder enc = new PngBitmapEncoder(); enc.Frames.Add(BitmapFrame.Create(bmpImg)); p.writeSuccess("image/png"); enc.Save(outStream); byte[] data = outStream.ToArray(); p.outputStream.BaseStream.Write(data, 0, data.Length); p.outputStream.BaseStream.Flush(); } } else { p.writeFailure(); } }
public abstract void handleGETRequest(HttpProcessor p);
public abstract void handlePOSTRequest(HttpProcessor p, StreamReader inputData);
public void listen() { listener = new TcpListener(IPAddress.Parse("127.0.0.1"), port); listener.Start(); while (is_active) { TcpClient s = listener.AcceptTcpClient(); HttpProcessor processor = new HttpProcessor(s, this); Thread thread = new Thread(new ThreadStart(processor.process)); thread.IsBackground = true; thread.Start(); Thread.Sleep(1); } }