Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Hi, ich versende und empfange Daten über einen Socket.

Dazu verwende ich die Funktionen send() und recv() in Visual C++.

Beim Senden ist alles ok.

Nur beim Empfangen "wartet sich der Server tot", weil er keinen Timeout bekommt.

Weiss jemand, wo ich ihm einen Timeout setzen oder einstellen kann????

Die normale Socket-API stellt keine Möglichkeit zur Verfügung, Timeouts festzulegen. Man kann sich aber z.B. mit einem weiteren Thread behelfen, der nach einer bestimmten Zeit den Socket schließt, so dass send bzw. revc mit einem Fehler zurückkommt.

Es gibt auch jede Menge plattformspezifischer Lösungen, z.B. für MFC: http://fachinformatiker-world.de/forums/showthread.php?s=&threadid=19704

Da gibts zwei klassische Methoden (ich bin mir aber nicht sicher ob auch beide unter Windows laufen).

Du setzt den Empfangssocket mit fcntl(2) auf "nonblocking", dann kehrt recv immer zurueck (mit dem return-Wert -1 und errno auf EAGAIN wenn keine Daten vorhanden sind).

Die zweite Methode (ein select-loop) sollte auch unter Windows laufen. Du klapperst Deine Sockets mit select(2) ab, um zu ueberpruefen, ob Daten vorhanden sind. Bei select kannst Du auch einen Timeout mit angeben. Ein einfaches Beispiel habe ich nicht zur Hand, aber schau Dir doch mal die folgenden Seiten an:

http://www.erlenstar.demon.co.uk/unix/faq_3.html#SEC26

http://www.lowtek.com/sockets/select.html

Nic

PS:

Select gehoert zur socket-API und sollte daher auch unter Windows vorhanden sein.

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.