Forum: Compiler & IDEs Verbindungstimeout Programmieren


von Black D. (Gast)


Lesenswert?

Moin zusammen,

ich habe ein Programm um mich übers Internet mit einem Server zu 
verbinden. Das möchte ich so erweitern, dass nach einer selbst 
bestimmten Zeit mein Programm eine Fehlermeldung ausspuckt. Wenn die 
Verbindung aufgebaut wurde bekomme ich eine 1 zurück und wenn die 
Verbindung nicht aufgebaut wurde eine 0.
Ich stehe halt grad auf dem Schlauch mit welcher abfrage ich das am 
besten mache.

Viele Grüße

von Gerald K. (geku)


Lesenswert?

Welche Plattform?

Welches Programm, selbst geschrieben?

Erweiterung des Programmes oder eigenes Programm zur Uberprüfung der 
Verbindung?

von Black D. (Gast)


Lesenswert?

Es ist ein c Programm mit eclipse auf meinem mac geschrieben und ich 
möchte mein bestehendes Programm erweitern.

von Irgend W. (Firma: egal) (irgendwer)


Lesenswert?

Black D. schrieb:
> ein Programm um mich übers Internet mit einem Server zu
> verbinden.

Geht es noch ungenauer?
- welches Internetprotokoll?
- Irgendeine API genutzt um das zu realisieren?
- Die Beschreibung zu dieser API mal gelesen ob die nicht sowas schon 
enthält und man nur noch die Zeit einstellen muss?
- und wenn du immer noch nicht weiterkommst der Progemmteil der da 
irgendwas verbindet?

von Gerald K. (geku)


Lesenswert?

Black D. schrieb:
> c Programm

**Beim Aufbau** :
1
    // connect the client socket to server socket
2
3
    if (connect(sockfd, (SA*)&servaddr, sizeof(servaddr)) != 0) {
4
5
        printf("connection with the server failed...\n");
6
7
        exit(0);
8
9
    }
10
11
    else
12
13
        printf("connected to the server..\n");

Bei aufgebauter Verbindung kann in der Dauerschleife for(;;;) von func 
über Kommunikation mit dem Server überprüft werden ob dieser antwortet.


https://www.geeksforgeeks.org/tcp-server-client-implementation-in-c/


https://www.it-swarm.com.de/de/c/schreiben-ein-geschlossenes-lokal-tcp-socket-schlaegt-nicht-fehl/1068188417/

von Εrnst B. (ernst)


Lesenswert?

dein "sockfd" auf O_NONBLOCK stellen,
wenn das Connect den "Fehlercode" EINPROGRESS zurückgibt, kannst du per 
"select" oder "poll" o.Ä. auf das Verbinden des Sockets warten, und 
denen dein Timeout mitgeben.

Beitrag #6733531 wurde von einem Moderator gelöscht.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.