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

$nooc

Alter Hase

  • »$nooc« ist der Autor dieses Themas

Beiträge: 873

Wohnort: Österreich / Kärnten

Beruf: Schüler

  • Private Nachricht senden

1

28.03.2008, 23:15

überprüfen ob socket-xy bereit ist...

hallo leute!

ich wollte fragen wie ich es bewerkstelligen kann, das mein programm überprüft ob ein socket bereit ist eine verbindung aufzunehmen, noch bevor ich mit diesem verbinde..

zb habe ich 2 sockets im netzwerk die darauf warten dass sich jemand verbindet..

0.0.0.1
und
0.0.0.2

jetzt will ich fragen: he 0.0.0.1 bist du dazu bereit eine verbindung aufzunehmen.. der antwortet "ja" und bam rufe ich connect()

weiss jemand wie das geht? :D
Am Anfang der Weisheit steht die eigene Erkenntnis, dass man selbst nichts weiß! - Sokrates

Firefly

Alter Hase

Beiträge: 484

Wohnort: Irgendwoundnirgendwo

  • Private Nachricht senden

2

29.03.2008, 10:21

um sowas zu prüfen musst du ja eig. defacto ne verbindung aufnehmen.

$nooc

Alter Hase

  • »$nooc« ist der Autor dieses Themas

Beiträge: 873

Wohnort: Österreich / Kärnten

Beruf: Schüler

  • Private Nachricht senden

3

29.03.2008, 10:53

d.h. ich komme um ein connect() nicht herum?
ich dachte da an sowas ähnliche wie anpingen...
Am Anfang der Weisheit steht die eigene Erkenntnis, dass man selbst nichts weiß! - Sokrates

4

29.03.2008, 13:58

Beim Anpingen hast du auch eine Verbindung.
Du kannst aber mit select oder so prüfen ob ein connect Aufruf blockieren würde.
Den dass ist es doch, was dir Probleme macht, oder? Das bestimmte Aufrufe blockieren?
Google mal nach Zotteljedi, der hat n gutes, kostenloses Buch geschrieben.
Lieber dumm fragen, als dumm bleiben!

rklaffehn

Treue Seele

Beiträge: 267

Wohnort: Braunschweig

  • Private Nachricht senden

5

29.03.2008, 14:25

Zitat von »"Jonathan_Klein"«

Du kannst aber mit select oder so prüfen ob ein connect Aufruf blockieren würde.


Für nen "select" brauchst du schon den fertigen Socket, den du im "connect" erst bekommst. Klappt also nicht... Vorher ist der Socket noch unverbunden, und select kann gar nicht wissen, mit wem es reden soll.

Wenn das Blockieren stört, kannst du den Socket vorher non-blocking machen. Dann kehrt "connect" auch sofort zurück und meldet "EWOUDBLOCK" als Ergebnis, was bedeutet, dass der Verbindungsaufbau noch im Gange ist. Danach kann man mittels select drauf warten, ob die Verbindung fertig aufgebaut wurde (write_fds ist gesetzt), oder ein Fehler passiert ist (ext_fds ist gesetzt).
God is real... unless declared integer.
http://www.boincstats.com/signature/user_967277_banner.gif

Werbeanzeige