Hallo , habe ein Programm in C geschrieben, /* client.c */ #include <stdio.h> #include <stdlib.h> #include <string.h> #include <io.h> #include <errno.h> #include <winsock.h> #include <windows.h> #include <sys\stat.h> #include <io.h> #define RCVBUFSIZE 8192 #define ZEILENLAENGE 80 #define MAXPUF 80 int main (int argc, char **argv ) { int ClientSocket; int result; char puffer [MAXPUF]= "Hallo test"; struct sockaddr_in AddrServerSock; char ip_adress [] = "127.0.0.1"; int server_port = strtol(argv[2], NULL, 10); printf(argv[1]); printf(argv[2]); // Ausgabe ClientSocket= socket(AF_INET, SOCK_STREAM, 0); // Socket-Struktur anlegen AddrServerSock.sin_family = AF_INET; // Domain AddrServerSock.sin_addr.s_addr = inet_addr("127.0.0.1"); //AddrServerSock.sin_addr.s_addr = inet_addr(ip_adress); AddrServerSock.sin_port = htons(1234); result = connect(ClientSocket, (struct sockaddr*)&AddrServerSock, sizeof(AddrServerSock)); // Warten bis Aufruf vom Server (durch accept-Funktion) zurürt if (result == -1) { printf("Verbindung nicht moeglich!\n"); exit(-1); } else printf("Port (Server): %i\n", AddrServerSock.sin_port); // Ausgabe des Serverports //fgets(puffer, MAXPUF, stdin); // Zeichenkette einlesen result = write(ClientSocket, puffer, MAXPUF, 0); // und verschicken if (result == -1) printf("Fehler beim Senden!\n"); else printf("Daten erfolgreich verschickt!\n"); result = read(ClientSocket, puffer, MAXPUF, 0); // warten auf Antwort vom Server if (result == -1) printf("Keine Daten empfangen !\n"); else printf("Daten vom Server: %s\n", puffer); close(ClientSocket); return 0; } möchte damit Daten per TCP übermitteln, bekomme jedoch immer folgende Fehlermeldung beim Linken Erzeugen von client2.obj. C:\Users\mwolff\Documents\Pelles C Projects\client\client2.c(49): warning #2027: Missing prototype for 'write'. C:\Users\mwolff\Documents\Pelles C Projects\client\client2.c(54): warning #2027: Missing prototype for 'read'. C:\Users\mwolff\Documents\Pelles C Projects\client\client2.c(60): warning #2027: Missing prototype for 'close' benutze PellesC als Compiler kennt das jemand ?? Bin etwas ratlos
Da wirst Du wohl vergessen haben, die Headerdatei einzubinden, in der die Prototypen von write, read und close enthalten sind. Welche das ist, kannst Du mit find oder findstr in einem Kommandozeilenfenster ("Eingabeaufforderung") selbst herausfinden. Geh in das include-Verzeichnis des Compilers und gib folgendes ein: find close *.h oder findstr /c:"close" *.h
... und read() kann theoretisch auch 0 liefern, dann ist der Inhalt des Puffers nicht verändert. Diesen Fall solltest du auch abfangen (nicht nur -1) und dann nicht den Puffer ausgeben.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.