Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C++CLI / VB .Net / .Net-Framework » mache hier gerade nen chat

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
23.02.2006, 16:33 Uhr
~hallo
Gast


hallo!

bin gerade dran n chat zu programmieren.
bis jetzt kann der server empfangen und der client senden.
ich habs jetzt lange versucht, dass der server auch senden kann, aber es funktioniert nicht
hier zeige ich euch mal die codes:

mfg

Serverseitiger Code

C++:
public class Form1 : System.Windows.Forms.Form
{
       TcpListener ls = new TcpListener(4711);
...........




C++:
static void Main()
        {
            Application.Run(new Form1());
        }

        

        private void chat()
        {
            string lese = "x";
            string nick = "leer";
            int a = 0;    
            ls.Start();
            Socket su = ls.AcceptSocket();

            while(true)
            {
                NetworkStream ns = new NetworkStream(su);
                StreamWriter sw = new StreamWriter(ns);
                StreamReader sr = new StreamReader(ns);
            
                if (su.Connected)
                {
                    if (a == 0)
                    {
                        gotmsg.Text = "Client verbunden" + "\n" + "\n";
                        a++;
                    }
                    if (a == 1)
                    {
                        string ipclient = " ";
                        ipclient = ((IPEndPoint)su.RemoteEndPoint).Address.ToString();
                        lese = sr.ReadLine();
                        nick = lese;
                        user.Text = nick + " " +ipclient;
                        a++;
                    }
                    
                    sw.WriteLine("Server hat Connection erlaubt - Sie sind verbunden");
                    lese = sr.ReadLine();
                    gotmsg.Text += lese +"\n";
                }
                
                
            }
                    
        }
private void button1_Click(object sender, System.EventArgs e)
        {
            new Thread(new ThreadStart(chat)).Start();
        }
private void menuItem10_Click(object sender, System.EventArgs e)
        {
            StreamWriter ws = File.CreateText("C:\\log.txt");
            ws.WriteLine(gotmsg.Text);
            ws.Close();
        }

        private void menuItem2_Click(object sender, System.EventArgs e)
        {
            string strLine = " ";
            string lesen = " ";
            try
            {
                StreamReader stream = new StreamReader("C:\\log.txt");
                while ((strLine = stream.ReadLine()) != null)
                {
                    lesen += strLine + "\n";
                }
                stream.Close();
                gotmsg.Text = lesen;
            }
            catch
            {
                MessageBox.Show("Es wurde kein Verlauf gefunden", "Fehler");
            }
        }
        public void sendens()
        {
            ls.Start();
            Socket soki = ls.AcceptSocket();
            NetworkStream ntwk = new NetworkStream(soki);
            StreamWriter sw2 = new StreamWriter(ntwk);

            sw2.WriteLine("H a l l o");
            sw2.Flush();
        }
        private void send_Click(object sender, System.EventArgs e)
        {
            new Thread(new ThreadStart(sendens)).Start();
        }

        private void menuItem11_Click(object sender, System.EventArgs e)
        {
            string Host = Dns.GetHostName();
            string IP = Dns.GetHostByName(Host).AddressList[0].ToString();
            MessageBox.Show("IP: " + IP + "     Host: " + Host);
        }

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
23.02.2006, 16:34 Uhr
~hallo
Gast


und hier im 2ten post (weil sonst der text zu lang war ^^ der clientseitige code)

Clientseitiger code


C++:
public class Form1 : System.Windows.Forms.Form
    {
        TcpClient ho = new TcpClient("127.0.0.1", 4711);
..........




C++:
static void Main()
        {
            Application.Run(new Form1());
        }
        
        public void empfangen()
        {
            string lesen = " ";
            NetworkStream ns2 = ho.GetStream();
            StreamReader sR = new StreamReader(ns2);
            lesen = sR.ReadLine();
            geto.Text = lesen;
        }

        public void send()
        {
            string doppelt = " ";
            
            
            NetworkStream ns = ho.GetStream();
            StreamReader streamReader = new StreamReader(ns);
            StreamWriter streamWriter = new StreamWriter(ns);
            while (true)
            {
                if (doppelt != tb.Text)
                {
                    if (File.Exists("C:\\Windows\\ja.txt"))
                    {
                        streamWriter.WriteLine(tb.Text);
                        streamWriter.Flush();
                        doppelt = tb.Text;
                        File.Delete("C:\\Windows\\ja.txt");
                    }
                }
                else
                {
                    Thread.Sleep(10);
                }
            }
            
        }


        private void button1_Click(object sender, System.EventArgs e)
        {
            new Thread(new ThreadStart(send)).Start();
        }

        private void button2_Click(object sender, System.EventArgs e)
        {
            StreamWriter xxx = File.CreateText("C:\\Windows\\ja.txt");
            xxx.WriteLine("yeah");
            xxx.Close();
        }
    }
}


 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
23.02.2006, 17:11 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


ja und wo ist nun dein problem?
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
23.02.2006, 18:52 Uhr
~hallo
Gast


also ok :-)

Der Server kann ja Nachrichten empfangen. Das funktioniert.
Aber ich will dass der Server auch Nachrichten senden kann und dass sie der Client dann empfängt.
Das geht aber irgendwie nicht.
da ist mein problem :-)


Mfg --> schönen Tag noch
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
24.02.2006, 08:13 Uhr
Uwe
C/C++ Master
(Administrator)


Hallo,
lade Dir einmal die "101 C# Code Samples" von M$ (CSharp.msi)
www.microsoft.com/downloads/details.aspx?familyid=08e3d5f8-033d-420b-a3b1-3074505c03f3&displaylang=en

Unter "Advanced .NET Framework (Networking) - Use Sockets" findest Du ein funktionierendes Bsp. für Client / Server
--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe

Dieser Post wurde am 24.02.2006 um 08:14 Uhr von Uwe editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C++CLI / VB .Net / .Net-Framework ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: