Warum kann ich mich nicht mit einem Socket verbinden(C)?
struct sockaddr_in address;
if (sockfd = socket(AF_INET, SOCK_STREAM, 0) < 0)
{
printf("socket failed");
perror("socket()");
}
address.sin_family = AF_INET;
address.sin_port = htons(PORT);
if (inet_pton(AF_INET, auth->server,&address.sin_addr.s_addr < 0)
{
perror("inet_aton()");
return -1;
}
if (server = connect(sockfd, (struct sockaddr *)&address, addr_lenght) < 0)
{
printf("Connection failed!");
perror("connect()");
return;
}
Immer wenn dieser Teil des Codes ausgeführt wird kommt die Fehlermeldung:
"connect(): Socket Vorgang an einem nicht-Socket."
Kann mir jemand sagen warum der Fehler auftritt. Die IP-Adresse und Port sind 100% richtig.
1 Antwort
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
Programmieren & Softwareentwicklung
if (inet_pton(AF_INET, auth->server,&address.sin_addr.s_addr < 0)
Da fehlt eine Klammer.
Deine eigenen Fehlermeldung solltest du im übrigen am besten in stderr printen und nicht in stdout.
Zudem kannst du mal schauen ob du deine Konsole so konfigurieren kannst, dass sie dir englische Fehlermeldungen ausgibt, mit denen man auch arbeiten könnte.
Alternativ die Fehlernummer und/oder den Namen des Enum-Wertes.
Du kannst auch mal hier die Fehlercodes durchgehen: