socket() & mysql_init() Problem
-
Also ich schreibe an einem Server und dachte MySQL wäre net schlecht für ne Datenbank... leider musste ich festellen dass, wenn ich mysql_init aufrufe....
Info(" Init...\n"); if ((conn=mysql_init(NULL))==NULL) Error(" ERROR\n"); Info(" Connecting...\n"); if (!mysql_real_connect(conn, server, user, password, database, 0, NULL, 0)) { Error(" %s\n", mysql_error(conn)); return; } /*...*/ ListenSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if (ListenSocket == INVALID_SOCKET) { Error(" Error at creating socket\n"); /*...*/
dann nicht mehr funktioniert !
wenn ich aber
ListenSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if (ListenSocket == INVALID_SOCKET) { Error(" Error at creating socket\n"); /*...*/ } /*...*/ Info(" Init...\n"); if ((conn=mysql_init(NULL))==NULL) Error(" ERROR\n"); Info(" Connecting...\n"); if (!mysql_real_connect(conn, server, user, password, database, 0, NULL, 0)) { Error(" %s\n", mysql_error(conn)); return; }
mache dann funktioniert socket();
Auch wenn es mit der 2. Methode funktioniert ist es nur ein gepfuschter workaround !
Ich hoffe irgendjemand kann mit sagen wo das Problem liegt .'Libs:
user32.lib kernel32.lib advapi32.lib ws2_32.lib mswsock.lib ole32.lib libmysql.lib
VisualStudio 2005 Express
Error: (Bei 1. Methode)
Eine Ausnahme (erste Chance) bei 0x00171060 in HolicEMU.exe: 0xC0000005: Zugriffsverletzung beim Lesen an Position 0x00171060. Unbehandelte Ausnahme bei 0x00171060 in HolicEMU.exe: 0xC0000005: Zugriffsverletzung beim Lesen an Position 0x00171060.
-
Wenn du funktionierenden Code für MySQL möchtest dann schaue mal in der FAQ.
Habe deine Frage sowieso nicht verstanden.
-
Unix-Tom schrieb:
Habe deine Frage sowieso nicht verstanden.
sobalt ich mysql benütze .. funktioniert die funktion socket() von "winsock2.h" nicht mehr ..
klar genug ?
Unix-Tom schrieb:
Wenn du funktionierenden Code für MySQL möchtest dann schaue mal in der FAQ
MySQL funktioniert.. solange ich socket() nicht benütze
Das komische dabei ist das
socket(); mysql_init();
geht .. aber
mysql_init(); socket();
nicht geht
-
Sowas hatte ich noch nie.
mysql_init reserviert Speicher etc.Vermutlich kommt da was durcheinander.
Hast du schon mal eine Debug gemacht.
-
Ich hab ein Debug probiert... hab aber nichts finden können .. naja ich habe das problem so gelöst .
/* DUMMY SOCKET */ closesocket(socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)); conn=mysql_init(NULL); /*..*/ ListenSocket=socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
So gehts dann .. ist aber trotzdem komisch das ich "socket()" aufrufen muss vor mysql_init().. sonst geht nix mehr .'
-
IMHO ruft ymsql_init auch socket auf. Kann mich aber auch irren.