Ich versuche, Server/Client-Kommunikation zu erstellen und es fehlschlägt die Connect-Funktion mit Fehlern 88. Ich überprüft, ob der Socketfd gültig ist (weil dieser Fehler bedeutet, dass ich versuche Socket-Operation auf nicht-Socket-Objekt zu machen).Verbinden mit Socket fehlgeschlagen - Fehlernummer 88 (cpp)
int main (int argc, char *argv[])
{
// Validity check
if (argc != VALID_ARG_NUM) {
std::cout << INVALID_ARG;
return 0; // todo - return 0 is correct??
}
int port;
struct sockaddr_in server_address;
// server_address initialization.
server_address.sin_family = AF_INET;
server_address.sin_port = htons((uint32_t)atof(argv[3]));
server_address.sin_addr.s_addr = inet_addr(argv[2]);
memset(&(server_address.sin_zero), '\0', sizeof(server_address));
// Create the client socket.
if (sockfd = socket(AF_INET, SOCK_STREAM, 0) < 0) {
std::cout << "ERROR: socket " << errno << "." << std::endl;
exit(1);
}
// Connect to server.
if (connect(sockfd, (struct sockaddr *)&server_address, sizeof(server_address)) < 0) {
std::cout << "ERROR: connect " << errno << "." << std::endl;
std::cout << CON_FAIL;
close(sockfd);
exit(1);
}
.......
danke.
Wenn Sie Boost verfügbar haben oder es herunterladen können, würde ich Boost Asio für Socket-Programmierung sehr empfehlen. – Peri461
Die Fehlercodes in 'errno' sind wirklich plattformabhängig. Bitte teilen Sie uns mit, welche Plattform (Betriebssystem) Sie verwenden. Und verwende z.B. 'strarror', um eine druckbare Zeichenfolge aus dem Fehlercode zu erhalten. –
Sorry, das Betriebssystem ist Linux. –