Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » GNU/Linux » Aufruf von connect

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
14.04.2003, 14:37 Uhr
typecast
aka loddab
(Operator)


Wie kann ich feststellen, warum ein connect()-Aufruf fehlschlägt?

mfg loddab
--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
14.04.2003, 15:10 Uhr
virtual
Sexiest Bit alive
(Operator)


Indem Du errno abfragst, zB so:

C++:
  if (-1 == connect(csocket, &addr, sizeof(addr)))
    {
        fprintf(stderr, "error: %s: connect() failed: %s\n", prgname, strerror(errno));
        ...
    }


Das hier ist ein kleiner Thread, welcher den Source für einen einfachen TCP Server/client enthält.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
09.05.2003, 11:26 Uhr
typecast
aka loddab
(Operator)


Was bitte bedeutet die Fehlermeldung: No such file or directory
--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
09.05.2003, 11:30 Uhr
virtual
Sexiest Bit alive
(Operator)


Bei einem Unix Domain Socket könnte zB die Socketdatei nicht vorhanden sein, speziell beim Connect. Ohne ausreichend Code schwer zu beantworten.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
09.05.2003, 12:03 Uhr
typecast
aka loddab
(Operator)


Wie heißt den diese Datei?
--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
09.05.2003, 12:39 Uhr
virtual
Sexiest Bit alive
(Operator)


Die müßtest Du beim bind/connect in der sockaddrun_t angegeben haben. Gilt wie gesagt nur bei Unix Domain Socket. Ansonsten kann es auch früher schon knallen, wenn Du ein nicht existierendes Protocol bzw. eine nicht unterstütztes Protokol verwenden willst. Code wäre nach wie vor hilfreich.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
09.05.2003, 13:56 Uhr
typecast
aka loddab
(Operator)


OK hier ein Ausschnitt


Code:
  ...
  int s = socket(PF_LOCAL, SOCK_STREAM, 0);
  struct hostent *R;
  struct sockaddr_in h;
  R = gethostbyname("obelix");

  bcopy(R->h_addr, &h.sin_addr, R->h_length);
  h.sin_port = 81;

  if (-1 == connect(s, (struct sockaddr*) &h, sizeof(h)))
  {
     cout << strerror(errno) << endl;    
  }
  ...



Fehlermeldung: No such file or directory
--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
09.05.2003, 14:58 Uhr
virtual
Sexiest Bit alive
(Operator)


PF_LOCAL Bedeutet, daß Du UNIX Domain Sockets verwendest, daher solltest Du an Stelle von sockaddr_in ein sockaddr_un (u statt i!) verwenden. In diesem kannst Du dann den Pfas für die Socketdatei angeben. Meist geht man vor dem connect bzw. Bind hin und macht ein unlink auf diese Datei, weil man sonst das Problem hat, daß das connect mit EEXIST fehlschlägt.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)

Dieser Post wurde am 09.05.2003 um 14:58 Uhr von virtual editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
09.05.2003, 16:01 Uhr
typecast
aka loddab
(Operator)


Und was muss ich tun wenn ich PF_LOCAL durch PF_INET ersetzte?
--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ GNU/Linux ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: