Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Faule Socke

Community-Fossil

  • »Faule Socke« ist der Autor dieses Themas

Beiträge: 1 915

Wohnort: Schreibtischstuhl

  • Private Nachricht senden

1

22.05.2007, 15:14

[gelöst]WinSocks: Problem mit recv

Hi,

ich hab ein kleines Problem mit WinSockets. Wie ja bekannt ist, blokieren die Funktionen recv und accept.(Und einige andere auch)
Das Problem mit accept habe ich durch Threads gelöst.

Mein Konzept lässt das bei rcv aber nicht zu. Ich habe zwar einen Thread, der extra dafür da ist Daten zu empfangen. Allerdings verwendet dieser Schleifen, um über jeden Clientsocket Daten zu empfangen.
Nun soll recv nur aufgerufen werden, wenn auch wirklich Daten da sind. Sonst blokiert die Funktion ja unter umständen Stunden und de anderen Clients senden immer mehr und mehr daten.

Wie kann ich also Prüfen, ob Daten vorhanden sind, die "empfangen" werden müssen?


mfg,

Faule Socke

Sheddex

unregistriert

2

22.05.2007, 15:37

http://dragonflame.dbgames.de/?page=links

Gehe diese Liste durch und ich bin mir sicher du wirst ein Tutorial finden in dem dieses Problem gelöst wird.

3

22.05.2007, 15:48

Zitat


Nun soll recv nur aufgerufen werden, wenn auch wirklich Daten da sind. Sonst blokiert die Funktion ja unter umständen Stunden und de anderen Clients senden immer mehr und mehr daten.

Sobald der andere Daten sendet hört die Funktion auf zu blokieren. Wo genau ist da das Problem?

Faule Socke

Community-Fossil

  • »Faule Socke« ist der Autor dieses Themas

Beiträge: 1 915

Wohnort: Schreibtischstuhl

  • Private Nachricht senden

4

22.05.2007, 16:09

Zitat von »"chriss"«


Sobald der andere Daten sendet hört die Funktion auf zu blokieren. Wo genau ist da das Problem?


Ich weiss, dass er dann aufhört zu blokieren. Allerdings eben ERST wenn die gegenseite Daten gesendet hat. Es sind aber unter umständen mehrere Clients von denen Daten empfangen werden müssen. Und der server kann es sich nicht leisten, mehrere Minuten auf einen einzigen davon zu warten, nur weil der gerade keine Daten sendet. Weil in der Schleife werden nämlcih von jedem Client daten emfpangen.(Nahceinander)

Ich hoffe das war jetzt net zu umständlich erklärt....


Socke

Sheddex

unregistriert

5

22.05.2007, 16:11

Da das Suchen des passenden Links scheinbar zu anstrengend ist:

http://www.c-worker.ch

Faule Socke

Community-Fossil

  • »Faule Socke« ist der Autor dieses Themas

Beiträge: 1 915

Wohnort: Schreibtischstuhl

  • Private Nachricht senden

6

22.05.2007, 16:16

Zitat von »"DragonFlame"«

Da das Suchen des passenden Links scheinbar zu anstrengend ist:

http://www.c-worker.ch


Ich bin grade auch auf der seite... ich habe den link nebenher gesucht. allerdings wollte ich chriss noch darüber aufklären, wie es zu meinem problem kommt.

PS: Deine Linksammlung ist echt toll. Die hat sofort ein bookmakr bei mir verdient. Wie lange hast du gebracuht, um sie zusamenzustellen?

Socke

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

7

22.05.2007, 16:38

Hat sich die Frage erledigt?

Wenn nicht: select
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

Faule Socke

Community-Fossil

  • »Faule Socke« ist der Autor dieses Themas

Beiträge: 1 915

Wohnort: Schreibtischstuhl

  • Private Nachricht senden

8

22.05.2007, 16:45

Zitat von »"Nox"«

Hat sich die Frage erledigt?

Wenn nicht: select


Jop hat sich erledigt. ANch dem ich das tut auf c-worker durchgelesen hatte, hab ich auch begriffen was select tut und das ich es dafür verwenden kann.

Socke

Sheddex

unregistriert

9

22.05.2007, 22:17

Zitat von »"Faule Socke"«


PS: Deine Linksammlung ist echt toll. Die hat sofort ein bookmakr bei mir verdient. Wie lange hast du gebracuht, um sie zusamenzustellen?
Socke


Ich sehe irgendwie nichts besonderes an ihr^^
Ist ja auch nicht wirklich umfangreich, ich wollte eigentlich lediglich meine Favoriten etwas "entmüllen" und habe dann eben allgemein brauchbare Dinge in die Linkliste geschrieben.

Werbeanzeige