private Socket socket; public void setSocket(Socket s) { this.socket = s; } // main function public void run() { String context = "here is the response."; webServer ws = new webServer("AEServer"); byte[] buffer = new byte[4096]; String requestStr = readMessage(buffer,this.socket); Console.WriteLine(requestStr); // GET Dictionary<String,String> parameters = ws.parseRequest(requestStr); if (parameters != null) { if (parameters.ContainsKey("num1") && parameters.ContainsKey("num2")) { try { long num1 = long.Parse(parameters["num1"]); long num2 = long.Parse(parameters["num2"]); wssla133.WebService1SoapClient client = new wssla133.WebService1SoapClient(); long result = client.addFunction(num1,num2); //num1 + num2; // set it to a small num (less than 40). otherwise it will raise timeOut long fabo = 0; String faboStr = ""; try { fabo = client.fabonacci(40); faboStr = fabo.ToString(); } catch (Exception ex) { faboStr = "Error:" + ex.ToString(); } context = "The result is " + result.ToString() + "<br/>" + "Fabonacci at position 40: " + faboStr + "<br/>" + "================================================" + "<br/>" + "<font size='2'>Host cpu: " + client.getHostcpuUsage().ToString() + " %<br/>" + "Host Available MEM: " + client.getHostMemUsage().ToString() + " MB<br/></font>"; } catch (Exception ex) { context = "wo le ge qu!"; } } } else { String postContext2 = "<form method='POST' action='/'>" + "Number1:<input name='num1'/><br/>" + "Number2:<input name='num2'/><br/>" + "<input name='text'/>" + "<input type='submit'/>" + "</form>"; context = postContext2; } ws.setContext(context); String reply = ws.getoKStatus(); buffer = new byte[reply.Length + 1]; if (!this.sendMessage(buffer,this.socket,reply)) { Console.WriteLine("TimeOut"); } } private string readMessage(byte[] byteArray,Socket s) { int bytes = s.Receive(byteArray,1024,0); String messageFromClient = UTF8Encoding.UTF8.GetString(byteArray).Replace("\0",""); //Console.WriteLine(messageFromClient); return messageFromClient; //clientMessage = messageFromClient; //return bytes; } private bool sendMessage(byte[] buffer,Socket s,String message) { try { int blen = UTF8Encoding.UTF8.GetBytes(message,message.Length,buffer,0); s.Send(buffer,blen,0); return true; } catch { return false; } } public static void Main(string[] args) { //Console.Write(GetServiceOutput()); //Console.Read(); //listening port 80 int port = 65180; //IPAddress localAddr = IPAddress.Parse("127.0.0.1"); TcpListener tcplistener = new TcpListener(IPAddress.Any,port); Console.WriteLine("listening on the port:{0}",port); // read incoming request tcplistener.Start(); webServer ws = new webServer("AEServer"); while (true) { Socket socket = tcplistener.AcceptSocket(); Program webProxy = new Program(); webProxy.setSocket(socket); Thread t = new Thread(new ThreadStart(webProxy.run)); t.Start(); } }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。