C# Pass multiple arguments to function and array -


i'm trying start "webserver" on local ip's. have send string webserver ws = new webserver(sendresponse, ips.getips("program"));, , array static string[] uris.

now receives 1 ip, tried other ways sending string webserver ws = new webserver(sendresponse, ips.getips("program")); didn't work multiple ip's.

it needs return string program , array webserver.

the string should this: "http://192.168.0.107:1337/", "http://192.168.56.1:1337/" program.

how send more 1 argument function , array. know code doesn't work i'm desperate right working.

ips.cs:

public static string getips(string args)     {         string[] combinedstring = { };         list<string> ipadressenlijst = new list<string>();         ipaddress[] ips = dns.gethostaddresses(dns.gethostname());          foreach (ipaddress ip in ips)         {             if (ip.addressfamily == addressfamily.internetwork)             {                 if (args == "program")                 {                     ipadressenlijst.add("http://" + ip + ":1337/");                     combinedstring = ipadressenlijst.toarray();                 }                 else if (args == "webserver")                 {                     ipadressenlijst.add("http://" + ip + ":1337/start/");                     ipadressenlijst.add("http://" + ip + ":1337/stop/");                     combinedstring = ipadressenlijst.toarray();                 }             }         }         return combinedstring[0];     } 

program.cs:

static void main(string[] args)     {         console.writeline(datetime.now + " press key exit.");         //webserver ws = new webserver(sendresponse, "http://192.168.0.107:1337/", "http://localhost:1337/");         webserver ws = new webserver(sendresponse, ips.getips("program"));         ws.run();         console.readkey();         ws.stop();     }  public static string sendresponse(httplistenerrequest request) {     return string.format("test"); } 

webserver.cs:

public class webserver {     //static string[] uris =     //{     //    "http://192.168.0.107:1337/start/",     //    "http://192.168.0.107:1337/stop/"     //};     static string[] uris =     {         ips.getips("webserver")     }; } 

to start tcplistener (for webserver) can use ipaddress.any address below:

var server = new tcplistener(ipaddress.any, port); 

now, code: getips function has bunch of issues. while loop, keep overwriting combinedstring, every time. top it, return first item combinedstring. context of question, gather want return ip addresses , not one

this how function should be

public static list<string> getips(string args) {     var ipadressenlijst = new list<string>();     ipaddress[] ips = dns.gethostaddresses(dns.gethostname());      foreach (ipaddress ip in ips) {         if (ip.addressfamily == addressfamily.internetwork) {             if (args == "program") {                 ipadressenlijst.add("http://" + ip + ":1337/");             } else if (args == "webserver") {                 ipadressenlijst.add("http://" + ip + ":1337/start/");                 ipadressenlijst.add("http://" + ip + ":1337/stop/");             }         }     }     return ipadressenlijst; } 

your webserver.cs code should handle incoming array of uris.

public class webserver {     string[] uris;     public webserver(func<httplistenerrequest, string> sendresponse, ienumerable<string> ipadressenlijst)     {         uris = ipadressenlijst.toarray();     } } 

in main function in program.cs, call should

webserver ws = new webserver(sendresponse, ips.getips("webserver")); 

there lot of guess work on side, not information available in question.. let me know if makes sense , works you


Comments

Popular posts from this blog

Is there a better way to structure post methods in Class Based Views -

performance - Why is XCHG reg, reg a 3 micro-op instruction on modern Intel architectures? -

jquery - Responsive Navbar with Sub Navbar -