Multiclient server-client c# -


so asked question problem had in server-client program , solve problem though answers got on question didnt @ (thanks anyway :] ), have problem, need program make multiclient-server type of thing, , dont know do. have doubts on parameterizedthreadstart, how put work etc, i've searched on it, know thread method still dont know how heck use it, ideas? in advance.

client code:

    public form1()     {          initializecomponent();      }      private void form1_load(object sender, eventargs e) //connect server     {         client = new tcpclient();         ipendpoint ip_end = new ipendpoint(ipaddress.parse("192.168.254.34"), 123); // sincronizacao ip com porta         try         {              socket socket = new socket(addressfamily.internetwork, sockettype.stream, protocoltype.tcp);              client.connect(ip_end);              if (client.connected)             {                  stw = new streamwriter(client.getstream());                 str = new streamreader(client.getstream());                 stw.autoflush = true;                  backgroundworker1.runworkerasync(); // começar receber dados em background                 backgroundworker1.workersupportscancellation = true; // possibilidade de cancelar o fio              }             else             {                  reconnect();              }          }         catch (socketexception exception)         {              messagebox.show(exception.message.tostring());             reconnect();         }     }      public void reconnect()     {         try         {              ipendpoint ip_end = new ipendpoint(ipaddress.parse("192.168.254.34"), 123); // sincronizacao ip com porta             client.connect(ip_end);              stw = new streamwriter(client.getstream());             str = new streamreader(client.getstream());             stw.autoflush = true;              backgroundworker1.runworkerasync();              backgroundworker1.workersupportscancellation = true;          }         catch (socketexception exception)         {              messagebox.show(exception.message.tostring());             reconnect();         }     }      private void backgroundworker1_dowork(object sender, doworkeventargs e)      {         while(client.connected)          {             try             {                 receive = str.readline();                 this.textbox2.invoke(new methodinvoker(delegate () { textbox2.text=(receive + "\n\r"); }));                  receive = "";             }             catch(exception x)             {                 messagebox.show(x.message.tostring());             }         }     } } 

server code:

public partial class form1 : form {     private tcpclient client;     public streamreader str;     public streamwriter stw;     public string receive;     public string text_to_send;      public form1()     {          initializecomponent();      }      private void backgroundworker2_dowork(object sender, doworkeventargs e)      {         if(client.connected) //enquanto o cliente tiver conectado pode escrever para o servidor         {             stw.writeline(text_to_send);             this.textbox2.invoke(new methodinvoker(delegate () { textbox2.text= (text_to_send + "\n\r"); }));         }         else         {             messagebox.show("envio falhado!");          }      }      private void button1_click(object sender, eventargs e)      {         if (text_to_send != "" && textbox1.text != "")         {             text_to_send = textbox1.text;             backgroundworker2.runworkerasync();         }         else {             messagebox.show("escreva uma mensagem para ser enviada");         }         textbox1.text = "";     }      private void form1_load(object sender, eventargs e)      {         tcplistener listener = new tcplistener(ipaddress.any, 123);           listener.start();         client = listener.accepttcpclient();            if (text_to_send != "")         {             text_to_send = "conexão efetuada com sucesso...";             backgroundworker2.runworkerasync();         }          str = new streamreader(client.getstream());         stw = new streamwriter(client.getstream());         stw.autoflush = true;       }  } 

server code (working on it):

    public form1()     {          initializecomponent();      }      private void backgroundworker2_dowork(object sender, doworkeventargs e)      {         if(client.connected)          {             stw.writeline(text_to_send);             this.textbox2.invoke(new methodinvoker(delegate () { textbox2.text= (text_to_send + "\n\r"); }));         }         else         {             messagebox.show("envio falhado!");          }      }      private void button1_click(object sender, eventargs e)      {         if (text_to_send != "" && textbox1.text != "")         {             text_to_send = textbox1.text;             backgroundworker2.runworkerasync();         }         else {             messagebox.show("escreva uma mensagem para ser enviada");         }         textbox1.text = "";     }      private void form1_load(object sender, eventargs e) // criar server     {          this.threadtcp = new thread(new threadstart(listentoclients));          listener.start();         client = listener.accepttcpclient();            if (text_to_send != "")         {             text_to_send = "conexão efetuada com sucesso...";             backgroundworker2.runworkerasync();         }          str = new streamreader(client.getstream());         stw = new streamwriter(client.getstream());         stw.autoflush = true;      }      private void listentoclients()     {         listener.start();         while (true)         {             try             {                 this.listener.accepttcpclient();                 client = listener.accepttcpclient();                  thread threadclient = new thread(new parameterizedthreadstart(handleclients));                 threadclient.start(client);              }             catch (exception)             {                 messagebox.show("error");             }         }     }     private void handleclients()     {         //tcplistener listener = new tcplistener(ipaddress.any, int.parse(textbox4.text));          listener.start();         client = listener.accepttcpclient();            if (text_to_send != "")         {             text_to_send = "conexão efetuada com sucesso...";             backgroundworker2.runworkerasync();         }          str = new streamreader(client.getstream());         stw = new streamwriter(client.getstream());         stw.autoflush = true;       }  } 

}


Comments