Windows Sockets. recvfrom function

Many0815

Mitglied
Hi leute!

Ich habe folgendes Problem:

Ich verwende die recvfrom Funktion um einen String zu erhalten. Je nachdem was in diesem String drinnen steht, schicke ich verschiedene Werte zurück.
Im Hintergrund läuft aber eine Statusmaschine mit verschiedenen Funktionen mit.
Aber wenn ich nichts empfangen sollte, weil z.B. der Server nicht online ist, soll die Statusmaschine trotzdem funktionieren.

Gibt es unter den Parametern irgendeine möglichkeit nur eine bestimmte Zeit lang zu schauen, ob etwas geschickt wird, dass ich empfangen kann
Weil zurzeit blockiert mir diese funktion meine Statusmaschine wenn nichts empfangen wird.

cheers Many
 
ja das hab ich mir auch schon gedacht, aber so wie ich es gelöst habe blockiert er mir diese funktino dann auch.

also ich habs halt mal mit ner sleep function versucht...
ist die ratsam?

oder soll ich mit tickcount eine differenz bilden?
aber mir kommt das ziemlich gleich vor oder täusch ich mich da?

cheers
 
erm ja klar...

ich habe einfach eine funktion geschrieben die eine zeitdifferenz bildet.
das heist mit gettickcount hol ich mir die systemzeit am anfang einmal raus, dann geh ich in eine while schleife rein wo ich jedesmal die zeit lese und eine differenz mit der zeit bilde, die ich mir am anfang rausgeholt habe.
ist diese zeit-differenz über 200ms dann gebe ich einen int wert mit 1 zurück.

doch bevor diese zeitdifferenz nicht erreicht wurde gebe ich 0 zurück.

das heist: in der recvfrom funktion gibt es den parameter flag.
ist dieser auf 0 dann wartet die funktion so lange bis etwas kommt.
ist dieser auf 1 dann läuft er über die funktion.

und natürlich muss danach eine abfrage gestartet werden ob etwas drin steht damit dann die gewünschten funtkionen ausgeführt werde.
ist das nicht der fall dann soll er einfach von vorne beginnen!

Wenn sich wer nicht auskennen sollte wie ich das gemeint habe kann er gerne fragen =)

cheers many
 
Zurück