Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

C-Sharp - NetworkStream - Wie auf vorhandene Daten prüfen?

Frage Entwicklung C und C++

Mitglied: mabue88

mabue88 (Level 2) - Jetzt verbinden

30.07.2014 um 08:52 Uhr, 1169 Aufrufe, 4 Kommentare

Hallo,

ich habe einen TCP-Client in C# programmiert. Prinzipiell wartet er nur auf Daten vom Server und verarbeitet sie.
Da der NetworkStream kein Event besitzt, das ausgelöst wird, wenn Daten empfangen wurden prüfe ich zyklisch mit einem Timer ob Daten vorliegen.

Zum Test der Verbindung wird ein Ping-Pong-Verfahren verwendet. Grundsätzlich funktioniert der Client. Ab und zu wird das Pong, die Antwort vom Server, jedoch nicht vom Client empfangen, obwohl die Verbindung noch besteht. Der Client geht dann davon aus, dass die Verbindung unterbrochen wurde und versucht entsprechend eine neue Verbindung aufzubauen.

Ich vermute, dass das Problem bei meinem Datenempfang mit dem Timer liegt.

Welche Alternativen gibt es zum Datenempfang?

Danke
mabue
Mitglied: colinardo
30.07.2014 um 09:17 Uhr
Moin mabue,
eine Möglichkeit ist die Nutzung der asynchronen Funktionen BeginRead und EndRead die eine Callback Procedure aufrufen sobald Daten empfangen werden.
Wie du das ganze in einem Loop realisierst, kannst du an einem Beispiel hier nachlesen:
http://social.msdn.microsoft.com/Forums/en-US/d6156c86-6efc-429a-9ba5-5 ...

Grüße Uwe
Bitte warten ..
Mitglied: mabue88
30.07.2014 um 11:00 Uhr
Hallo Uwe,

danke für deine Antwort.

Die Grundzügen von BeginRead und EndRead funktionieren bei mir bereits.
Macht es Sinn anstelle von "Connect()" ebenfalls mit dem Verbindungssteuerung auf ein asynchrones Verfahren umzustellen?

Im Netz konnte ich bis jetzt keine Beschreibung finden, die mir erklärt, was passiert, wenn nach dem Aufruf von "BeginConnect" keine Verbindung zum Server aufgebaut werden kann...

Gruss
mabue
Bitte warten ..
Mitglied: colinardo
30.07.2014 um 11:04 Uhr
Zitat von mabue88:
Macht es Sinn anstelle von "Connect()" ebenfalls mit dem Verbindungssteuerung auf ein asynchrones Verfahren
umzustellen?
Ist immer eine Frage wie das Programm aufgebaut ist.
Im Netz konnte ich bis jetzt keine Beschreibung finden, die mir erklärt, was passiert, wenn nach dem Aufruf von "BeginConnect" keine Verbindung zum Server aufgebaut werden kann...
http://msdn.microsoft.com/de-de/library/tad07yt6%28v=vs.110%29.aspx
Unten Ausnahmen stehen die entsprechenden Exceptions die auftreten falls keine Verbindung zustande kommt. Diese Situation kannst du also mit Try..Catch abfangen, feddich

Grüße Uwe
Bitte warten ..
Mitglied: mabue88
30.07.2014 um 11:09 Uhr
Perfekt!

Danke!

Wenn ich den Code einigermaßen fertig habe füge ich ihn diesem Thread noch hinzu. Vielleicht können andere dann was damit anfangen.

Gruss
mabue
Bitte warten ..
Ähnliche Inhalte
Visual Studio
Prüfen ob ein Komma in textbox enthalten ist c sharp
gelöst Frage von derCreeperVisual Studio7 Kommentare

Ich bin gerade dabei einen taschenrechner zu programmieren, komme aber nicht weiter, da ich nicht weiß wie folgendes geht; ...

C und C++
C-Sharp Daten von PHP lokal speichern
Frage von YanmaiC und C++3 Kommentare

Hallo ihr Administratoren, ich möchte einen ZIP von einer PHP Datei lokl speichern. Mein PHP Script: mein C# Script: ...

IDE & Editoren
IDE für C-Sharp und C++ auf Windows
gelöst Frage von BugdroidIDE & Editoren8 Kommentare

Hallo, Ich nutze derzeit Visual Studio, aber auf Dauer ist es mir etwas zu Ressourcenfressend und für meine Zwecke ...

C und C++
C Sharp XAML Universal
Frage von DippsC und C++3 Kommentare

Hallo ich versuche gerade mit C#2015 ein Projekt Universal XAML zu erstellen um auf einem Raberry PI 2 mit ...

Neue Wissensbeiträge
Windows 10

Windows 10 v1709 EN murkst bei den Regionseinstellungen

Tipp von DerWoWusste vor 3 StundenWindows 10

Dieser kurze Tipp richtet sich an den kleinen Personenkreis, der Win10 v1709 EN-US frisch installiert und dabei die englische ...

Webbrowser

Kein Ton bei Firefox Quantum über RDP

Tipp von Moddry vor 4 StundenWebbrowser

Hallo Kollegen! Hatte das Problem, dass der neue Firefox bei mir auf der Kiste keinen Ton hat, wenn ich ...

Internet

EU-DSGVO: WHOIS soll weniger Informationen liefern

Information von sabines vor 16 StundenInternet4 Kommentare

Wegen der europäische Datenschutzgrundverordnung stehen die Prozesse um die Registrierung von Domains auf dem Prüfstand. Sollte die Forderungen umgesetzt ...

Verschlüsselung & Zertifikate

19 Jahre alter Angriff auf TLS funktioniert immer noch

Information von BassFishFox vor 22 StundenVerschlüsselung & Zertifikate1 Kommentar

Interessant zu lesen. Der Bleichenbacher-Angriff gilt unter Kryptographen als Klassiker, trotzdem funktioniert er oft noch. Wie wir herausgefunden haben, ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
Von rj11 auf rj45
Frage von jensgebkenLAN, WAN, Wireless19 Kommentare

Hallo Gemeinschaft, könnt ihr mir vielleicht bei der anfertigung eines Kabels helfen - habe ein rj 11 stecker und ...

Netzwerkmanagement
NAS über zwei weitere Ethernet Anschlüsse verbinden
gelöst Frage von Sibelius001Netzwerkmanagement17 Kommentare

Sorry - ich bin hier wahrscheinlich als kompetter IT Trottel unterwegs. Aber eventuell kann mir jemand ganz einfach helfen: ...

Netzwerkmanagement
Firefox Profieles im Roaming
gelöst Frage von Hendrik2586Netzwerkmanagement17 Kommentare

Hallo liebe Leute. :) Ich hab da ein kleines Problem, welches anscheinend nicht unbekannt ist. Wir nutzen hier in ...

LAN, WAN, Wireless
Häufig Probleme beim Anmelden in WLAN
Frage von mabue88LAN, WAN, Wireless15 Kommentare

Hallo zusammen, in einem Netzwerk gibt es relativ häufig (1-2 mal pro Woche) Probleme mit der WLAN-Verbindung. Zunächst mal ...