Zum Inhalt springen

Socket: Ausstehende Verbindungsanforderungen


Empfohlene Beiträge

Geschrieben

weißt du denn vorher wieviele anforderungen durchlaufen werden oder ist das dynamisch?

eventuell solltest du versuchen über eine art checksumme herauzufinden ob Anzahl erforderlicher Anforderung = Anzahl durchlaufender Anforderungen

ich benutze callbacks nur zur statusabfrage von asynchronen threads, insofern weiß ich nicht ob eine checksumme möglich bzw. sinnvoll ist.

Geschrieben

weißt du denn vorher wieviele anforderungen durchlaufen werden oder ist das dynamisch?

Nee... das ist nicht dynamisch.

Da ist praktisch ein Server, der überwacht die Anforderungen von Clients.

Und sobald einer connected erstellt der Server ein neues Objekt.

Ich weiß praktisch nicht, wieviele Anforderungen von den Clients kommen, bzw. wie viele noch ausstehen.

Geschrieben

hm interessante sache :) .

weiß der client wieviele anforderungen er vorhat zu senden? wenn dem so ist kann der ja vorher ne zahl rüberschicken oder er sendet zum schluss ne notification, dass er fertig ist.

ansonsten fällt mir dazu nix weiter ein.

Geschrieben

weiß der client wieviele anforderungen er vorhat zu senden? wenn dem so ist kann der ja vorher ne zahl rüberschicken oder er sendet zum schluss ne notification, dass er fertig ist.

Ich kann den Client leider nicht beeinflussen.

Geschrieben

Mit Socket.Poll und SelectRead auf den Socket, der lauscht, solltest du herausbekommen können, ob mindestes eine anzunehmende Verbindung aussteht. Reicht das aus, oder brauchst du tatsächlich die Anzahl?

Geschrieben

Hi, für jede Verbindungsanforderung wird die Methode aufgerufen die den XY Delegate implementiert. Wenn du nicht in dieser Methode landest stehen auch keine Anforderungen mehr aus. Das ganze ansynchrone Socket Modell ist leider sehr schlecht dokumentiert, es muss in etwa so laufen...

Du hast eine Einsprungsmethode in der machst du unter anderem ein

socket.BeginAccept(new AsyncCallback(callbackAccept), socket);

Beim ersten ConnectRequest wird die callbackAccept aufgerufen:


private void callBackAccept(IAsyncResult ar)

{

  Socket serverSocket = (Socket)ar.AsyncState;

  Socket newClientSocket = serverSocket.EndAccept(ar);


  // Jetzt hast du einen Socket auf dem du dem Client Daten senden kannst.

  // Um Daten vom Client zu empfangen musst du newClientSocket.BeginReceive(...) aufrufen


 // Damit der Server weitere Verbindunganforderungen akzeptiert muss du wieder ein serverSocket.BeginAccept machen


}

Das bedeutet immer wenn es eine Anforderung gibt wird die callBackAccept aufgerufen. Willst du keine Verbindungen mehr annehmen lässt du das BeginAccept aus.

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...