Feler bei selbstgeschr. Winsock Klasse
-
Hi,
wenn ich folgende selbstgeschriebene Klasse in ein Programm einbnden will meckert er immer über das#include <windows.h> #include <winsock2.h> class x_socket_c { private: SOCKET s; SOCKADDR_IN addr; public: void connect_to(string ,int ); int send_buffer(char* ); int get_buffer(char* ); void make() ; }; //--------------------------------------------------------- void x_socket_c::make() { s=socket(AF_INET,SOCK_STREAM,0); } //--------------------------------------------------------- int x_socket_c::send_buffer(char* buffer) { return send (s,buffer,sizeof(buffer),0) ; } //--------------------------------------------------------- int x_socket_c::get_buffer(char* buffer) { return recv (s,buffer,sizeof(buffer),0) ; } //--------------------------------------------------------- void x_socket_c::connect_to(string IP,int port) { addr.sin_family=AF_INET; addr.sin_port=htons(port); addr.sin_addr.s_addr=inet_addr(IP); connect(s,(SOCKADDR*)&addr,sizeof(SOCKADDR)); } //---------------------------------------------------------Hier mal ein Beißpielprogramm:
#include <iostream> #include "x_sockets.h" using namespace std; int startWinsock(void); int main(int* argc,char* argv[]) { char buffer[256]; startWinsock(); x_sockets_c s; s.make(); s.connect_to("80.237.132.11",80); s.get(buffer); cout << buffer; } int startWinsock(void) { WSADATA wsa; return WSAStartup(MAKEWORD(2,0),&wsa); }An was liegt das,kann in der Klasse nix finden
Danke im voraus,
Xalon
-
Xalon schrieb:
meckert er immer über Gott und die Welt
Ohne Infos, keine Antwort.

-
-
sizeof(buffer) == 4
-
Was willst mir damit sagen?
Xalon
-
das das auch ein fehler in deinem code ist.
-
sizeeog(buffer) ist doch nicht immer 4

Xalon
-
wenn ichs doch sage!
-
NEin isses nicht,führ mal
#include <iostream> using namespace std; int main(void) { char buffer [20]; cout << sizeof(buffer); return 1; }aus... Ausgabe :20
Xalon
-
das ist ja auch was anderes...
-
char buffer[100]; std::cout << sizeof(static_cast<char*>(buffer)) << std::endl; // 4 std::cout << sizeof(buffer) << std::endl; // 100
-
Wasanderes?ich mach ja nicht sizeof(static_cast<char*>(buffer))
sondern ich mach auch sizeof (buffer)Xalon
-
du machst das aber indirekt indem du es der funktion übergibst.
-
Ok,
dachte wenn des ein Zeiger ist dann kann ich des Ganznormal benutzen
Aber sonzt funzt es auch nicht
Xalon
