Hi, ich habe mich in den letzten Tagen mit Socketprogrammierung befasst und habe einen UDP Server gemacht, an welchem sich mehret Clients anmelden können um mit diesem zu kommunizieren. Der Server wartet also auf eine Nachricht der Clients und antwortet dann entsprechend darauf. Die Clients warten immer auf eine Nutzereingabe und verarbeiten diese. Jetzt wollte ich fragen, ob es eine Möglichkeit gibt, dass die Clients sowohl eine Nutzereingabe als auch eine Nachricht von dem Server bearbeiten können. Der Client müsste also während er auf die Nutzereingabe wartet immer mal wieder gucken, ob was neues auf dem Port ankommt. Danke für eure Hilfe! Peter
danke, das hört sich schonmal gut an. Durch das Abfragen von bestimmten Sockels durch select(), kann der Client also wissen an welchem sich Daten befinden. Aber der Client muss select() immer noch aktiv abfrage und kann nicht auf ankommende Daten reagieren, wenn er gerade auf eine Nutzereingabe wartet, oder? Gibt es sowas wie einen interrupt, der ausgelöst wird, wenn eine Nachricht von dem Server kommt?
Peter schrieb: > danke, das hört sich schonmal gut an. > Durch das Abfragen von bestimmten Sockels durch select(), kann der > Client also wissen an welchem sich Daten befinden. Aber der Client muss > select() immer noch aktiv abfrage und kann nicht auf ankommende Daten > reagieren, wenn er gerade auf eine Nutzereingabe wartet, oder? Gibt es > sowas wie einen interrupt, der ausgelöst wird, wenn eine Nachricht von > dem Server kommt? Wenn keine Daten da sind blockt select.
sorry, das habe ich nicht verstanden. mein client wartet in der while (1): Schleife immer auf eine Nutzereingabe: (data = raw_input('sobs> ') Das heißt, wenn keine Nutzereingabe kommt, bleibt der Client dort im Porgramm hängen. Wie kann er dann auf Nachrichten vom Server reagieren? Danke für deine Hilfe!
Peter schrieb: > sorry, das habe ich nicht verstanden. > mein client wartet in der while (1): Schleife immer auf eine > Nutzereingabe: > (data = raw_input('sobs> ') > Das heißt, wenn keine Nutzereingabe kommt, bleibt der Client dort im > Porgramm hängen. Wie kann er dann auf Nachrichten vom Server reagieren? > Danke für deine Hilfe! Vorher mit select prüüfen ob Daten da sind.
ahh...mir war nicht klar, dass man sowohl die Sockets als auch die Eingaben des Nutzers prüfen kann. Danke!
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.