SOCKET
-
Hallo
Wie weiss ich jetzt wo der Fehler liegt.
Ich komme nicht darauf was hier falsch ist.Ich habe eine Win32 Anwendung (Projetkt) in VC++ erstellt und diesen Q-CODE Kompiliert.
Ich habe es auch so probiert: In Borland C++ 5.0 EsayWin (.exe) Projekt erstellt und so Kompileirt aber da habe ich 5 Fehler bekommen.
Also kann jemand den Code zum laufen bringen.
Daenk
#include <windows.h> #include <winsock.h> #include <stdio.h> void WSAInit(void) { WORD wVersionReg = MAKEWORD(1, 1); WSADATA wsaData; if (int err = WSAStartup(wVersionReg, &wsaData) != 0) { puts("Fehler: Initialisieren - WinSock.dll!"); } } int main(void) { SOCKET sock = INVALID_SOCKET; WSAInit(); if ((sock = socket(AF_INET, SOCK_STREAM, 0)) == INVALID_SOCKET) { puts("Fehler beim Erstellen des Socket!\n"); } closesocket(sock); WSACleanup(); return 0; }
--------------------Konfiguration: sockc - Win32 Debug--------------------
Kompilierung läuft...
sock_win.c
C:\Dokumente und Einstellungen\Oenal\Desktop\VISUALC++\METIN\sockc\sock_win.c(9) : error C2059: Syntaxfehler : 'type'
C:\Dokumente und Einstellungen\Oenal\Desktop\VISUALC++\METIN\sockc\sock_win.c(13) : error C2059: Syntaxfehler : '}'
Fehler beim Ausführen von cl.exe.sockc.exe - 2 Fehler, 0 Warnung(en)
-
Ich denke, dass dsa nur ein Fehler mit nem Folgefehler ist:
void WSAInit(void) { WORD wVersionReg = MAKEWORD(1, 1); WSADATA wsaData; if (int err = WSAStartup(wVersionReg, &wsaData) != 0) { puts("Fehler: Initialisieren - WinSock.dll!"); } }
Einrücken macht das Ganze übrigens übersichtlich
Zeile 9 ist (so die Datei vollständig ist) die mit dem if.du kannst im C (und der Compiler nimmt automatisch an, dass .c - Dateien C sind und kein C++) keine Variablen in der if-Abfrage deklarieren, sondern nur am Ende des Blocks. Da du aber die Variablen err nicht wirklich benutzt, brauchst du sie auch garnicht.
Außerdem sollte Dein Hauptprogramm auch auf die Funktion reagieren können..void WSAInit(void) { WORD wVersionReg = MAKEWORD(1, 1); WSADATA wsaData; if (WSAStartup(wVersionReg, &wsaData) != 0) { puts("Fehler: Initialisieren - WinSock.dll!"); return 1; } return 0 } int main(void) { SOCKET sock = INVALID_SOCKET; if (WSAInit()==0); { if ((sock = socket(AF_INET, SOCK_STREAM, 0)) == INVALID_SOCKET) { puts("Fehler beim Erstellen des Socket!\n"); return 2; } closesocket(sock); WSACleanup(); } return 0; }
Der zweite Fehler ist meines Erachtens nur dadurch entstanden, dass das if falsch war und deswegen automatisch das '{' weggefiltert wurde (rate ich mal so ganz dumm..)
Viel spaß noch mit den Sockeln
cYa
DjR