Socketprogrammierung Python

Gast #2869408
Lesenswert?

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
Gast #2869415
Lesenswert?

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?
Gast #2869416
Lesenswert?

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.
Gast #2869420
Lesenswert?

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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren