Archiv verlassen und diese Seite im Standarddesign anzeigen : pointer error
blackpearl
09-12-2004, 08:44
Hallo,
Ich habe hier mal nen Source, allerdings hab ich damit meine Probleme, denn der Compiler gibt mit folgenden Fehler zurück:
server.c: In function `main':
server.c:46: warning: passing arg 2 of `bind' from incompatible pointer type
server.c:72: warning: passing arg 2 of `accept' from incompatible pointer type
server.c:95:10: warning: no newline at end of file
Zeile 46: if (b = bind(sock, &server, sizeof(server)) == -1)
Es sind nur Warnungen und keine Fehler :).
Die dritte Warnung einfach durch eine Leerzeile am Dateiende beheben :).
Die zweite Warnung hat die selbe Ursache wie die erste Warnung.
Jetzt zur ersten Warnung:
Da kann ich http://www.zotteljedi.de/doc/socket-tipps/index.html absolut empfehlen!
blackpearl
09-12-2004, 15:25
dankeschön,
nun hab ich aber folgendes problem mit dem client:
cc client.c -o client
client.c:5:2: invalid preprocessing directive #inlcude
client.c: In function `main':
client.c:41: warning: passing arg 2 of `connect' from incompatible pointer type
client.c:60:2: warning: no newline at end of file
make: *** [client] Fehler 1
und hier ist mal der gesamte source:
#include <stdio.h>
#include <netdb.h>
#include <netinet/in.h>
#include <stdlib.h>
#inlcude <arpa/inet.h>
#include <sys/types.h>
#include <sys/socket.h>
#define BUFFER_SIZE 8024
int main(int argc,char* argv[])
{
char buffer[BUFFER_SIZE];
char tempo[8024];
int dub;
int bytes;
int sock, a, b;
struct sockaddr_in server;
dub = 0;
if(argc != 3)
{
perror("\nSYNTAX: client <host-ip> <port>\n");
exit(1);
}
server.sin_addr.s_addr = inet_addr(argv[1]); //IP des Servers
server.sin_port = htons((unsigned short int)atol(argv[2])); //Port zu dem ein connect gemacht werden soll
server.sin_family = AF_INET;
sock = socket(AF_INET,SOCK_STREAM,0);
if(sock == -1)
{
perror("\n//SOCKET FAILED");
exit(0);
}
if(connect(sock,&server, sizeof(server)) == -1) //das connecten
{
perror("\nCONNECT FAILED");
exit(0);
}
bytes = recv(sock,buffer,sizeof(buffer),0);
b = 0;
a = 0;
if(bytes == -1)
{
perror("\nRECV FAILED");
exit(1);
}
printf("\n%s\n",buffer);
return(0);
}
Simpler Schreibfehler:
client.c:5:2: invalid preprocessing directive #inlcude
Fällt dir da was auf :)?
peschmae
10-12-2004, 10:00
Solche Fehler gibts also tatsächlich :D
Hatte eben nen Test wo in nem C-Programm #include <studio.h> war und eine whyle-Schleife. Ich durfte die Fehler suchen und hab mir über die Praxisrelevanz gedanken gemacht ;)
MfG Peschmä
Es ist echt unglaublich was das menschliche Gehirn korrigiert, obwohl wir den Fehler sehen.
Beim studio.h musste ich 3x schauen, bis ich es sah :).
locus vivendi
10-12-2004, 12:25
Es is ebenso unglaublich was man alles herausfindet wenn man z.B. mal "man 2 socket" und "man 2 connect" eingibt wenn der Compiler einen schon mit der Nase drauf stößt...
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.