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?

Mitglied: mabue88

mabue88 (Level 2) - Jetzt verbinden

30.07.2014 um 08:52 Uhr, 1186 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
Microsoft
ARD-Doku - Das Microsoft Dilemma
Tipp von Knorkator vor 25 MinutenMicrosoft

Hallo zusammen, vor einigen Tagen lief in der ARD u.a. Reportage. Das Youtube Video dazu dürfte länger verfügbar sein. ...

Windows 10

Neue Sicherheitslücke in Windows 10 (Version 1709) durch Google öffentlich geworden

Information von kgborn vor 18 StundenWindows 10

Vor ein paar Tagen haben Googles Sicherheitsforscher vom Projekt Zero eine Sicherheitslücke im Edge-Browser publiziert. Jetzt wurde eine weitere ...

iOS
IOS 11.2.6 verfügbar
Information von sabines vor 1 TagiOS

Mit dem Update soll der Bug behoben werden, bei dem eine bestimmte Zeichenkette IOS zum Absturz gebracht hat.

Sicherheit
Sicherheitsrisiko: Die Krux mit 7-Zip
Information von kgborn vor 1 TagSicherheit8 Kommentare

Bei vielen Anwendern ist das Tool 7-Zip zum Entpacken von Archivdateien im Einsatz. Die Software ist kostenlos und steht ...

Heiß diskutierte Inhalte
Router & Routing
LANCOM VPN CLIENT einrichten
Frage von Finchen961988Router & Routing27 Kommentare

Hallo, ich habe ein Problem und hoffe ihr könnt mir helfen, wir haben einen Kunden der hat einen Speedport ...

Windows Server
AD DS findet Domäne nicht, behebbar?
Frage von schapitzWindows Server25 Kommentare

Guten Tag, ich habe bei einem Kunden ein Problem mit den AD DS. Umgebung ist folgende: Windows Server 2016 ...

LAN, WAN, Wireless
VPN Cisco ASA5505 PaloAlto PA-200
gelöst Frage von YannoschLAN, WAN, Wireless22 Kommentare

Hallo zusammen, ich würde gerne ein Site-to-Site VPN zwischen den beiden Standorten aufbauen. PaloAlto PA200 Internetanschluss Deutsche Telekom GK ...

SAN, NAS, DAS
Qnap TS-453S Pro - Anbindung Active Directory
Frage von JuckieSAN, NAS, DAS13 Kommentare

Hallo zusammen, ich habe hier eine Qnap TS-453S Pro die sich mal so absolut gar nicht in das Active ...