summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/mongoose/examples/csharp/example.cs
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/mongoose/examples/csharp/example.cs')
-rw-r--r--3rdparty/mongoose/examples/csharp/example.cs43
1 files changed, 43 insertions, 0 deletions
diff --git a/3rdparty/mongoose/examples/csharp/example.cs b/3rdparty/mongoose/examples/csharp/example.cs
new file mode 100644
index 00000000000..9736c6b991d
--- /dev/null
+++ b/3rdparty/mongoose/examples/csharp/example.cs
@@ -0,0 +1,43 @@
+// This file is part of mongoose web server project,
+// https://github.com/cesanta/mongoose
+
+using System;
+
+public class Program {
+ 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;
+ }
+
+ static void Main() {
+ Mongoose web_server = new Mongoose(".", "9001",
+ new MongooseEventHandler(EventHandler));
+
+ Console.WriteLine("Mongoose started, press Ctrl-C to exit.");
+ for (;;) {
+ web_server.poll(1000);
+ }
+ }
+}