mongoose/examples/c#/example.cs

44 lines
1.3 KiB
C#
Raw Normal View History

2013-09-26 19:50:11 +08:00
// This file is part of mongoose web server project,
// https://github.com/cesanta/mongoose
using System;
public class Program {
2014-03-12 20:31:53 +08:00
static private int EventHandler(IntPtr conn_ptr, int ev) {
MongooseConnection conn = (MongooseConnection)
System.Runtime.InteropServices.Marshal.PtrToStructure(
conn_ptr , typeof(MongooseConnection));
if (ev == 102) {
// MG_AUTH
return 1;
} else if (ev == 103) {
// MG_REQUEST
Mongoose.send_data(conn_ptr, "Hello from C#!\n");
Mongoose.send_data(conn_ptr, "URI: " + conn.uri + "\n");
Mongoose.send_data(conn_ptr, "HTTP Headers:\n");
for (int i = 0; i < conn.num_headers; i++) {
IntPtr name = conn.http_headers[i].name;
IntPtr val = conn.http_headers[i].value;
System.Runtime.InteropServices.Marshal.PtrToStringAnsi(name);
Mongoose.send_data(conn_ptr, " " +
System.Runtime.InteropServices.Marshal.PtrToStringAnsi(name) + ": " +
System.Runtime.InteropServices.Marshal.PtrToStringAnsi(val) + "\n");
}
return 1;
}
return 0;
2013-09-26 19:50:11 +08:00
}
static void Main() {
2014-03-12 20:31:53 +08:00
Mongoose web_server = new Mongoose(".", "9001",
new MongooseEventHandler(EventHandler));
2013-09-26 19:50:11 +08:00
2014-03-12 20:31:53 +08:00
Console.WriteLine("Mongoose started, press Ctrl-C to exit.");
for (;;) {
web_server.poll(1000);
}
2013-09-26 19:50:11 +08:00
}
}