public bool onAnswer(string token, Answer answer) { string[] answers = answer.Ans; int[][] stones = this.problem.Stones; Board.Board board = null; if (textBox2.Text == token) board = board1; if (textBox3.Text == token) board = board2; if (textBox4.Text == token) board = board3; if (textBox5.Text == token) board = board4; if (board == null) return false; board.reset(); bool flg = ((answers.Length -1 )== stones.Length); for (int i = 0; (i < stones.Length && flg); i++) { if (String.IsNullOrEmpty(answers[i])) continue; string[] info = answers[i].Split(' '); if (info[2] == "H" || info[2] == "T") { Console.WriteLine("OKUYO"); flg = board.place(stones[i], info[2] == "H", int.Parse(info[3]), int.Parse(info[0]), int.Parse(info[1])); } else { flg = false; } } board.Time = DateTime.Now - this.stime; board.Pass = flg; return flg; }
public void callback(IAsyncResult result) { HttpListener listener = (HttpListener)result.AsyncState; if (!listener.IsListening) { return; } HttpListenerContext context = listener.EndGetContext(result); HttpListenerRequest req = context.Request; HttpListenerResponse res = context.Response; StreamWriter sw = new StreamWriter(res.OutputStream); res.StatusCode = 200; if (!playing) { sw.Write("HAHAHA"); res.StatusCode = 404; } else if (req.HttpMethod == "POST" && req.Url.LocalPath == "/answer") { StreamReader reader = new StreamReader(req.InputStream); string str = reader.ReadToEnd(); reader.Close(); System.Collections.Specialized.NameValueCollection qs = HttpUtility.ParseQueryString(str); Answer ans = new Answer(qs["ans"]); if (ans != null && !String.IsNullOrEmpty(qs["token"]) && Array.IndexOf(this.tokens, qs["token"]) != -1 && this.ansCallback.onAnswer(qs["token"], ans)) { sw.Write("Accept"); } else { sw.Write("Invalid"); res.StatusCode = 403; } } else if (req.HttpMethod == "GET" && req.Url.LocalPath == "/quest" + this.id + ".txt") { if (!String.IsNullOrEmpty(req.QueryString["token"]) && Array.IndexOf(this.tokens, req.QueryString["token"]) != -1) { sw.Write(problem); } else { sw.Write("Invalid"); res.StatusCode = 403; } } else if (req.HttpMethod == "GET" && req.Url.LocalPath == "/form") { sw.Write("<!DOCTYPE html><html lang=\"ja\"><head><meta charset=\"UTF-8\" /><title>SubmitForm</title></head><body><form method=\"post\" action=\"/answer\">Token : <input type=\"text\" name=\"token\" /><br /><hr />AnswerText :<br /><textarea name=\"ans\" cols=\"75\" rows=\"20\"></textarea><br /><input type=\"submit\" /></form></body></html>"); } else { sw.Write("HA?"); res.StatusCode = 404; } sw.Flush(); res.Close(); this.listener.BeginGetContext(this.callback, this.listener); }
public void callback(IAsyncResult result) { HttpListener listener = (HttpListener)result.AsyncState; if (!listener.IsListening) return; HttpListenerContext context = listener.EndGetContext(result); HttpListenerRequest req = context.Request; HttpListenerResponse res = context.Response; StreamWriter sw = new StreamWriter(res.OutputStream); res.StatusCode = 200; if (!playing) { sw.Write("HAHAHA"); res.StatusCode = 404; } else if (req.HttpMethod == "POST" && req.Url.LocalPath == "/answer") { StreamReader reader = new StreamReader(req.InputStream); string str = reader.ReadToEnd(); reader.Close(); System.Collections.Specialized.NameValueCollection qs = HttpUtility.ParseQueryString(str); Answer ans = new Answer(qs["ans"]); if (ans != null && !String.IsNullOrEmpty(qs["token"]) && Array.IndexOf(this.tokens, qs["token"]) != -1 && this.ansCallback.onAnswer(qs["token"], ans)) { sw.Write("Accept"); } else { sw.Write("Invalid"); res.StatusCode = 403; } } else if (req.HttpMethod == "GET" && req.Url.LocalPath == "/quest" + this.id + ".txt") { if (!String.IsNullOrEmpty(req.QueryString["token"]) && Array.IndexOf(this.tokens, req.QueryString["token"]) != -1) { sw.Write(problem); } else { sw.Write("Invalid"); res.StatusCode = 403; } } else if (req.HttpMethod == "GET" && req.Url.LocalPath == "/form") { sw.Write("<!DOCTYPE html><html lang=\"ja\"><head><meta charset=\"UTF-8\" /><title>SubmitForm</title></head><body><form method=\"post\" action=\"/answer\">Token : <input type=\"text\" name=\"token\" /><br /><hr />AnswerText :<br /><textarea name=\"ans\" cols=\"75\" rows=\"20\"></textarea><br /><input type=\"submit\" /></form></body></html>"); } else { sw.Write("HA?"); res.StatusCode = 404; } sw.Flush(); res.Close(); this.listener.BeginGetContext(this.callback, this.listener); }