|
|
Fehler im Socket Tutorial?
Online-tutorials.net Forenübersicht/C++ / C#/Fehler im Socket Tutorial?
Antworten Neues Thema Bottom Seite 1 2
Autor
|
|
Nachricht nächster / vorheriger Thread
|
Mesias Einsteiger
Registriert seit: 12.2004 Beiträge:6
| Fehler im Socket Tutorial? Hab euer Socket-Tutorial durchgelesen und hänge an der Stelle wo SOCKET s; steht, denn der Compiler schreibt jedesmal dass der typ von s definiert werden muss und SOCKET anscheinend nicht funktioniert
Fehlermeldung:
mainsock.cpp:55: error: ISO C++ forbids declaration of `s' with no type
mainsock.cpp:57: error: syntax error before `if'
| 30.12.2004 17:29 | Profil >> Zitat >> IP gespeichert | Keywords:c++,tutorial,fehler,socket |
---|
Simon Online-tutorials.net Administrator
Registriert seit: 01.1970 Wohnort:Dornbirn Beiträge:1181
| Socket Tutorial Hallo,
erstmal Willkommen im Forum.
Ich vermute, dass da irgend ein Header fehlt.
Hast du
Code:
#include
#include
includiert?
Falls ja, dann versuch mal diese beiden Dateien zu kompilieren: http://www.c-worker.ch/tuts/sock.c, http://www.c-worker.ch/tuts/socksrv.c
Wenn das funktioniert, dann poste bitte den Code, damit ich das genauer anschauen kann.
Das Tutorials stammt übrigens nicht von uns, sondern von http://www.c-worker.ch ------------------- http://www.online-tutorials.net/wiki/funktionsname
Für was Personal Firewalls GnuGP emails verschlüsseln C++ Tutorial Sicherheits Tutorials
| 30.12.2004 18:04 | Homepage >> >>Profil >> Zitat >> IP gespeichert | Keywords:C++, socket tutorial, Tutorial, winsock2.h |
---|
Mesias Einsteiger
Registriert seit: 12.2004 Beiträge:6
| geht und geht nicht :/ Die beiden angegeben Files gehen , jedoch finde ich bei mir den Fehler nicht:
Code:
#include <windows.h>
#include <winsock2.h>
#include <stdio.h>
//Prototypen
int startWinsock(void);
int main()
{
long rc;
SOCKET s;
rc=startWinsock();
if(rc!=0)
{
printf("Fehler: startWinsock, fehler code: %d\n",rc);
return 1;
}
else
{
printf("Winsock gestartet!\n");
}
return 0;
}
int startWinsock(void)
{
WSADATA wsa;
return WSAStartup(MAKEWORD(2,0),&wsa);
}
s=socket(AF_INET,SOCK_STREAM,0);
if(s==INVALID_SOCKET)
{
printf("Fehler: Der Socket konnte nicht erstellt werden, fehler code: %d\n",WSAGetLastError());
return 1;
}
else
{
printf("Socket erstellt!\n");
}
return 0;
| 30.12.2004 20:53 | Profil >> Zitat >> IP gespeichert | Simon Online-tutorials.net Administrator
Registriert seit: 01.1970 Wohnort:Dornbirn Beiträge:1181
| Winsock Tutorial Der Teil:
Code:
s=socket(AF_INET,SOCK_STREAM,0);
if(s==INVALID_SOCKET)
{
printf("Fehler: Der Socket konnte nicht erstellt werden, fehler code: %d\n",WSAGetLastError());
return 1;
}
else printf("Socket erstellt!\n");
gehört in die int main Schleife, und die int StarWinsock(void) Funktion gehört ganz nach unten.
So:
Code:
#include
//#include
#include
//Prototypen
int startWinsock(void);
int main()
{
long rc;
SOCKET s;
rc=startWinsock();
if(rc!=0)
{
printf("Fehler: startWinsock, fehler code: %d\n",rc);
return 1;
}
else
{
printf("Winsock gestartet!\n");
}
s=socket(AF_INET,SOCK_STREAM,0);
if(s==INVALID_SOCKET)
{
printf("Fehler: Der Socket konnte nicht erstellt werden, fehler code: %d\n",WSAGetLastError());
return 1;
}
else
{
printf("Socket erstellt!\n");
}
return 0;
}
int startWinsock(void)
{
WSADATA wsa;
return WSAStartup(MAKEWORD(2,0),&wsa);
}
Du hast ganz am Schluss einen Codeteil, der in keiner Funktion ist
Ich hoffe das hat dir geholfen, wenn du weitere Fragen hast kannst du sie jederzeit stellen. ------------------- http://www.online-tutorials.net/wiki/funktionsname
Für was Personal Firewalls GnuGP emails verschlüsseln C++ Tutorial Sicherheits Tutorials
Firefox - besser durch das Web!
| 30.12.2004 23:17 | Homepage >> >>Profil >> Zitat >> IP gespeichert | Keywords:Funktion, Winsock, C++ |
---|
Mesias Einsteiger
Registriert seit: 12.2004 Beiträge:6
| thx ein sehr mutiges angebot :D
also thx das klappt :)
| 30.12.2004 23:32 | Profil >> Zitat >> IP gespeichert | Mesias Einsteiger
Registriert seit: 12.2004 Beiträge:6
| hab jetzt mal versucht eine verbindung mit dem irc.quakenet.eu.org server herzustellen via port 6666 und protokoll 1459(hab die entsprecheneden Zeilen abgeändert).
Bekomme aber schon beim Erstellen des Sockets einen Fehlercode:
–10043 INTERNER FEHLER: ist beim Abruf eines Blobs aufgetreten - Nulllänge. (weis nicht ob der Text stimmt hab den ergoogled) aber mir sagt die Fehlermeldung nichts.
| 31.12.2004 04:15 | Profil >> Zitat >> IP gespeichert | Mesias Einsteiger
Registriert seit: 12.2004 Beiträge:6
| und gleich noch ne frage :)
habe den pfad des aktuellen verzeichnisses in einer variablen szDirectory, die diesen mit cout auch korrekt ausgibt, anschließend habe ich den datei namen (config.ini). dies versuche ich nun irgendwie miteinander zu verbinden, damit ich die ini auslesen kann(wenn ich sie ins windows kopiere und die pfadangabe weglasse klappts :) )
hier das entscheidende stück code:
Code:
int iMatches = GetPrivateProfileInt( "settings", "wert1",
DEFAULTVALUE_MATCHES, "szDirectory\\config.ini" );
| 31.12.2004 13:29 | Profil >> Zitat >> IP gespeichert | Simon Online-tutorials.net Administrator
Registriert seit: 01.1970 Wohnort:Dornbirn Beiträge:1181
|
Quote:
Code:
int iMatches = GetPrivateProfileInt( "settings", "wert1",
DEFAULTVALUE_MATCHES, "szDirectory\\config.ini" );
Ich vermute du programmierst mit C:
Code:
char strBuffer[255];
sprintf(strBuffer,"%s\\config.ini",szDirectory);
int iMatches = GetPrivateProfileInt( "settings", "wert1",
DEFAULTVALUE_MATCHES, strBuffer);
das "%s" (String) im 2. Parameter von sprintf wird dann einfach durch szDirectory ersetzt.
Wegen dem irc Server: sowas habe ich noch nie gemacht, da muss ich zuerst googeln.
[edit]
support.ipswitch.com/kb/WSK-19980714-EM26.htm
Das hier könnte auch ganz nützlich sein
Ich sehe gerade das du C++ verwendest:
Code:
oben:
include
std::string strFilename = szDirectory + "\\config.ini";
int iMatches = GetPrivateProfileInt( "settings", "wert1",
DEFAULTVALUE_MATCHES, strFilename.c_str());
Die Variante ist gegen bufferoverflows geschützt. ------------------- http://www.online-tutorials.net/wiki/funktionsname
Für was Personal Firewalls GnuGP emails verschlüsseln C++ Tutorial Sicherheits Tutorials
Firefox - besser durch das Web!
| 01.01.2005 17:46 | Homepage >> >>Profil >> Zitat >> IP gespeichert | Keywords:sprintf, c++, winsock |
|
nächster / vorheriger Thread
|
Antworten Neues Thema Top Seite 1 2
|