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 habe einen C Client und einen Perl Server, beide kommunizieren über Windowssockets

miteinander.

Der Server läuft die ganze Zeit und wartet auf eine Verbindungsanfrage, der Client versucht

wenn er gestartet wird, mit dem Server verbindung aufzunehemen und sendet ihm bei Erfolg

bestimmte Daten und wartet dann auf eine Antwort vom Server.

Der Server überprüft die Daten vom Client und holt sich anhand dieser andere aus einer

Datenbank. Diese Daten werden dann aneinandergehängt und sollen an den wartenden

Client geschickt werden. Nur komischerweise erhalte ich beim Client meistens (nicht immer!!!

manchmal klappts) die Meldung das die Verbindung vom Remoute-Computer zurückgesetzt

wurde, nehme ich jetzt die Datenbankabfragen raus (die funktion dauer nur ein bis zwei

sekunden) dann klappts immer.:confused:

Weiß irgendwer woran das liegen kann?

Gruß

Guybrush

Sendet der Server die Daten sofort, oder wartet er bis der Puffer voll ist? Hast du mal mit nem Sniffer geschaut wie die Datenpakete zw. Client und Server verlaufen? (z.B. Eterreal)

Ich hatte mal ein ähnliches Problem mit Perl Client/Server. Das ließ sich durch einen autoflush() Eintrag von Perl lösen.

Anderenfalls wartet das Programm (Client/Server) so lange bis die zu sendenen Daten einen Puffer gefüllt haben und schicken sie dann ab.

  • Autor
Ich vermute einen Timeout seitens des Servers. Was passiert, wenn der Server

anstelle des Datenbankzugriffs einige Sekunden wartet?

Das hab ich auch vermutet, aber wenn ich die Funktion auskommentiere und ein sleep

dahinsetzte kann ich mindestens 20 sekunden warten und die Daten werden trotzdem

erfolgreich gesendet.

Hast du mal mit nem Sniffer geschaut wie die Datenpakete zw. Client und Server verlaufen? (z.B. Eterreal)

Wie genau mache ich das denn?

Ich habe vor dem senden einfach mal autoflush() geschrieben, aber das hat irgendwie nichts

gebracht, außer das er an der Stelle immer aus dem Programm springt.

Muß ich noch irgendwas in den Klammern übergeben?

Achso, innerhalb der Datenbankfunktion die ich aufrufe kann ich an jeder Stelle was an den

Client senden, sobald sie endet aber nicht mehr.

  • Autor

Ich hab hier noch ne etwas genauere Fehlermeldung gefunden, kann mir aber trotzdem nicht

erklären warum der Fehler beim Client auftritt.

The virtual circuit was reset by the remote side executing a "hard" or "abortive"

close. The application should close the socket as it is no longer usable. On a UDP datagram

socket this error would indicate that a previous send operation resulted in an ICMP "Port

Unreachable" message.

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.