Fehler bei Socketerstellung (connect) Konvertierung von 'sockaddr *' nach 'char *' nicht möglich
-
Ok das ist meine Socket.cpp
AnsiString mySocket::Init(){ // Winsock starten rc=startWinsock(); if(rc!=0) { SockedError = "Fehler: startWinsock, fehler code:" + rc; return SockedError; } // Socket erstellen MySocket=socket(AF_INET,SOCK_STREAM,0); if(MySocket==INVALID_SOCKET) { SockedError = "Fehler: Der Socket konnte nicht erstellt werden, fehler code:" + WSAGetLastError(); return SockedError; } return 0; } AnsiString mySocket::connect(int Port, char* IP){ // Verbinden memset(&address,0,sizeof(SOCKADDR_IN)); // zuerst alles auf 0 setzten address.sin_family=AF_INET; address.sin_port=htons(Port); // port address.sin_addr.s_addr=inet_addr(IP); // zielrechner IP rc=connect(MySocket,(struct sockaddr*)&address, sizeof(SOCKADDR)); if(rc==SOCKET_ERROR) { SockedError ="Fehler: connect gescheitert, fehler code:" + WSAGetLastError(); return SockedError; } return 0; } AnsiString mySocket::MySend(char* buf){ send(MySocket, buf, strlen(buf), 0); } AnsiString mySocket::Myrecive(){ } int mySocket::startWinsock() { WSADATA wsa; return WSAStartup(MAKEWORD(2,0),&wsa); } //Standart functionenen mySocket::~mySocket() { closesocket(s); WSACleanup(); } mySocket::mySocket() { Init(); }
das ist meine socket.h
#include <winsock2.h> #include <system.hpp> class mySocket{ public: mySocket(); ~mySocket(); private: AnsiString rc; AnsiString SockedError; SOCKET MySocket; SOCKADDR_IN address; int startWinsock(); AnsiString Init(); AnsiString connect(int Port, char* IP); AnsiString MySend(char* buf); AnsiString Myrecive(); };
Brauchst du noch mehr?? Wobei das das include File zu allen Socket aufgaben ich wollte ja erstmal den Socket initialiesieren und dann das mit dem Dateiaustausch testen aber das initiailiersen klappt ja schon net ;-((
mfg
wdsl
-
wdsl schrieb:
rc=connect(MySocket,(sockaddr*)&address, sizeof(SOCKADDR));
Hmm, muss man da nicht statt sizeof(SOCKADDR) sizeof(sockaddr_in) nehmen ?
...aber das nur nebenbei...
-
Doch muss man habe ich auch ausgebessert. Danke dir aber mein Problem gibts immer noch ;-((
-
und mein vorschlag hilft auch net?
sonst caste es auf void*
-
Habe deinen Fehler gefunden.
AnsiString mySocket::connect(int Port, char* IP){
[quote] rc=connect(MySocket,(struct sockaddr*)&address, sizeof(SOCKADDR));
[/list]Ich hoffe dir fällt was auf.
-
hi,
mag ja eine dumme idee sein, aber vielleicht nutzt es was, wenn du deine connect-Methode mal umbenennst z.b. in myConnect
-
*sichunsichtbarfühlt*
hab ich das nicht schon geschrieben?
-
@rapso
huch....doch hast du....meine güte ich brauch ne brille
ich tu's auch nie wieder!!!
-
@all Danke fuer die hilfe man alle functionen nenne ich um nur die wo der Fehler ist net
@rapso muss zugeben ich habe dich übersehen das lag daran das ich "a" post gelesen habe dann nicht aktualisert habe und meinen Post drunter gesetzt habe und das was oben war net mehr gelesen habe.
Auf allen fällen gehts jetzt erstmal und nochmal vielen Dank an alle die mir geholfen haben
-
@rincewind
ok, ich verzeihe dir ;D, aber nur weil dein nick so klasse ist/me scheibenwelt mag
rapso->greets();
-
@rapso
UGH!