-
Notifications
You must be signed in to change notification settings - Fork 0
/
SimpleServer.cs
74 lines (68 loc) · 2.28 KB
/
SimpleServer.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
//http://www.codeproject.com/Articles/137979/Simple-HTTP-Server-in-C
namespace AutoCar
{
class SimpleServer : HttpServer
{
public SimpleServer(int port) : base(port) {}
public VideoGrabber ImgSource;
public override void handleGETRequest(HttpProcessor p)
{
if (p.http_url.StartsWith("/disp")) {
byte[] data = ImgSource.GetImage();
p.httpResponseHeaders["Cache-Control"] = "no-cache, must-revalidate";
p.writeSuccess("image/jpeg");
p.outputStream.Flush();
p.outputStream.BaseStream.Write(data,0,data.Length);
p.outputStream.BaseStream.Flush();
}
else if (p.http_url.StartsWith("/left")) {
byte[] data = ImgSource.GetLeftImage();
p.httpResponseHeaders["Cache-Control"] = "no-cache, must-revalidate";
p.writeSuccess("image/jpeg");
p.outputStream.Flush();
p.outputStream.BaseStream.Write(data,0,data.Length);
p.outputStream.BaseStream.Flush();
}
else if (p.http_url.StartsWith("/right")) {
byte[] data = ImgSource.GetRightImage();
p.httpResponseHeaders["Cache-Control"] = "no-cache, must-revalidate";
p.writeSuccess("image/jpeg");
p.outputStream.Flush();
p.outputStream.BaseStream.Write(data,0,data.Length);
p.outputStream.BaseStream.Flush();
}
else if (p.http_url == "/main.css") {
p.writeSuccess("text/css");
string txt = File.ReadAllText("Server/main.css");
p.outputStream.Write(txt);
}
else if (p.http_url == "/jquery.js") {
p.writeSuccess("text/javascript");
string txt = File.ReadAllText("Server/jquery.js");
p.outputStream.Write(txt);
}
else if (p.http_url == "/main.js") {
p.writeSuccess("text/javascript");
string txt = File.ReadAllText("Server/main.js");
p.outputStream.Write(txt);
}
else if (p.http_url == "" || p.http_url == "/" || p.http_url == "/index") {
p.writeSuccess();
string txt = File.ReadAllText("Server/main.html");
p.outputStream.Write(txt);
} else {
p.writeSuccess();
p.outputStream.Write(p.http_url);
}
}
public override void handlePOSTRequest(HttpProcessor p, System.IO.StreamReader inputData)
{
}
}
}