Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Wo finde ich ein Beispiel eines TCP Listeners im WPF?
ado683
myCSharp.de - Member



Dabei seit:
Beiträge: 30

Themenstarter:

Wo finde ich ein Beispiel eines TCP Listeners im WPF?

beantworten | zitieren | melden

Hallo hat irgendjemand mal ein Beispiel von einem TCP Listener in der WPF vorhanden?

Auf youtube etc. gehen die meisten nur darauf ein wenn man windows forms benutzt und da händeln das die leute mit dem invokerequired, Wpf bietet das halt nicht an. Ich habe eigentlich auch schon eine Lösung meine Frage ist jetzt nur wie kann ich daten empfangen?

Also mein Server startet und verbindet sich aber dann passiert nicht viel. Weiß nicht wie ich weiter vorgehen muss.


using System.Windows;
using System;
using System.Text;
using System.Net.Sockets;
using System.Threading;
using System.Net;


namespace TCP_Listener
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {

        private int port;
        private bool loop = true;
        private TcpListener serverListener;
        private Socket serverAcceptSocket;


        public MainWindow()
        {
            InitializeComponent();
        }

        public void TcpServer()
        {
            try
            {
                IPAddress ipadd = IPAddress.Parse("127.0.0.1");
                port = Int32.Parse(tBox_Port.Text);

                serverListener = new TcpListener(ipadd, 45455);
                serverListener.Start();
                textBoxVerbunden.Text = "TCP Server Start";
                Thread serverThread = new Thread(new ThreadStart(Receive_From_Client));

            }
            catch
            {
                
            }
        }

        

        public void Receive_From_Client()
        {
            loop = true;
            try
            {
                serverAcceptSocket = serverListener.AcceptSocket();

                while (loop)
                {
                    if (serverAcceptSocket.Connected)
                    {
                        try
                        {

                            byte[] receiveByte = new byte[1024];
                            int nValue = serverAcceptSocket.Receive(receiveByte, receiveByte.Length, 0);

                            if (nValue > 0)
                            {
                                string data = null;
                                data = Encoding.Unicode.GetString(receiveByte);

                                tBox_Outcoming.Text = data;
                            }

                        }
                        catch
                        {

                        }
                    }
                    else
                    {
                        TCP_Close();
                    }
                }
            }
            catch
            {

            }
        }

        public void TCP_Close()
        {
            if (loop == true) loop = false;

            if(serverAcceptSocket != null)
            {
                serverAcceptSocket.Close();
            }

            if(serverListener != null)
            {
                serverListener.Stop();
            }

        }

        private void btn_Send_Click(object sender, RoutedEventArgs e)
        {
            string data = string.Format("{0}", tBox_Outcoming.Text);

            //string data = "<cmdMessage cmdID=\"123ABC\"><![CDATA[<font size=\"+2\" color=\"#ffffff\">Hello World!</font>]]></cmdMessage>";
            byte[] buffer = Encoding.Unicode.GetBytes(data);
            serverAcceptSocket.Send(buffer, 0, buffer.Length, 0);
        }


        private void btnServerStart_Click(object sender, RoutedEventArgs e)
        {
            TcpServer();
        }

        
    }  

}

danke
private Nachricht | Beiträge des Benutzers
markl
myCSharp.de - Member

Avatar #avatar-4095.gif


Dabei seit:
Beiträge: 77

beantworten | zitieren | melden

WPF und TCP haben erstmal wenig mit einander zu tun.

Was du sucht ist ein Dispatcher:

https://docs.microsoft.com/de-de/dotnet/api/system.windows.threading.dispatcher?view=netframework-4.7.2
http://dotnet-paderborn.azurewebsites.net/
private Nachricht | Beiträge des Benutzers
ado683
myCSharp.de - Member



Dabei seit:
Beiträge: 30

Themenstarter:

beantworten | zitieren | melden

dankeschön habe das aber jetzt alles anders gelöst. mit dem backgroundworker
private Nachricht | Beiträge des Benutzers
Stefan.Haegele
myCSharp.de - Member

Avatar #avatar-3068.jpg


Dabei seit:
Beiträge: 458
Herkunft: Untermeitingen

beantworten | zitieren | melden

Und wie dir schon mehrfach gesagt wurde: [Tipp] Anfängerhinweis == true / == false
private Nachricht | Beiträge des Benutzers