Oppure

Loading
09/09/11 14:06
DexterELEL
Ragazzi nel creare una chat client server sono arrivato alla parte della chat.. ho creato il Send e Receive che sono rispettivamente

Send:
public void InviaATutti(string MESSAGGIO)
        {
            foreach (Socket s in Sockets)
            {
                s.Send(ASCIIEncoding.ASCII.GetBytes(MESSAGGIO));
            }
        }


Receive:
public void RiceviMessaggi()
        {
            TcpClient Connector = new TcpClient();
            int port = int.Parse(textBox2.Text);
            IPAddress ipAdd = IPAddress.Parse(textBox1.Text);
            EndPoint ep = new IPEndPoint(ipAdd, port);
            Socket s = new Socket(ep.AddressFamily, SocketType.Stream, ProtocolType.IP);
            s.Connect(ep);
            if (Connector.Available > 0)
            {
                byte[] msg = new byte[Connector.Available];
                s.Receive(msg);
                string testo = ASCIIEncoding.ASCII.GetString(msg);
                listBox1.Items.Add(testo);
                s.Close();
            }
            else
            {
                s.Close();
            }
        }


Ok, ma il messaggio sul client non appare sapreste dirmi dove ho sbagliato?
aaa
09/09/11 16:11
L'if è insensato:
Connector è un TcpClient che instanzi e lasci a "morire" nella prima riga di codice, mentre s è un socket che effettivamente si connette, quindi perché il controllo avviene su Connector.Available? Non potranno mai esserci dati in arrivo se non lo fai connettere.

Comunque il codice è piuttosto bruttino, usa i metodi asincroni BeginXXX delle classi TcpClient e NetworkStream.

[ot]Tempo fa ho creato una libreria open source per la gestione di un server multi-connessione molto semplice da usare, se vuoi te la passo :yup:[/ot]
Ultima modifica effettuata da 09/09/11 16:13
10/09/11 8:00
DexterELEL
si mi sarebbe utile la dll se potresti passarmela..
aaa