I've noticed that it recent SVN mono snapshots (r106513) using HttpListener and WebRequest in the same process hangs. This doesn't hang with 1.9.1, and didn't with less recent snapshots.
I haven't tried having the client and server in different processes, and don't know if it reproduces there. Test case: using System; using System.IO; using System.Net; using System.Threading; class simplehttp { public static void Main(string[] argv) { simplehttp sh = new simplehttp(); Thread srv = new Thread(new ThreadStart(sh.ServerMain)); srv.Name = "HttpServer"; srv.Start(); for (;;) { HttpWebRequest req = (HttpWebRequest) WebRequest.Create ("http://localhost:8888/foobar/"); req.ServicePoint.Expect100Continue = false; req.ServicePoint.UseNagleAlgorithm = false; req.Method = "POST"; StreamWriter w = new StreamWriter(req.GetRequestStream()); w.WriteLine("Hello, server!"); w.Close(); HttpWebResponse resp = (HttpWebResponse) req.GetResponse(); StreamReader r = new StreamReader(resp.GetResponseStream()); System.Console.WriteLine("client reads: {0}", r.ReadToEnd()); r.Close(); } } private void ServerMain() { HttpListener listener = new HttpListener(); listener.Prefixes.Add("http://*:8888/foobar/"); listener.Start(); while (true) { HttpListenerContext ctx = listener.GetContext(); ThreadPool.QueueUserWorkItem(new WaitCallback(HandleConnection), ctx); } } private void HandleConnection(object state) { HttpListenerContext ctx = (HttpListenerContext) state; HttpListenerRequest req = ctx.Request; StreamReader r = new StreamReader(req.InputStream); System.Console.WriteLine ("server reads {0}", r.ReadToEnd()); HttpListenerResponse resp = ctx.Response; StreamWriter o = new StreamWriter(resp.OutputStream); o.WriteLine("Hello, world!"); o.Close(); } } Thanks. _______________________________________________ Mono-devel-list mailing list Mono-devel-list@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-devel-list