[ICMP] recvfrom auf rawsocket returnt "Invalid argument", trotz 1:1 Kopie von funkt. Code
-
Hi Leute,
ich will mich kurz fassen, wieso zur Hölle gibt mir folgender recvfrom Aufruf
immer WSAEINVAL (10022) Invalid argument. zurück?Hab das mehr oder weniger von c-worker.ch, und der BspCode von dort funktioniert
auch wie er soll, und da wirds auch nicht anders aufgerufen.10022 bedeutet bei recvfrom ja eigentlich "socket not bound (for Dgram) or not yet connected (for Stream), or the requested length is zero (whether a length >32K", aber wo muss ich bei nem RAW Socket denn meinen Socket binden? o.O
int receive_p2p_message(char* write_to) { SOCKET sock; sock = socket(AF_INET, SOCK_RAW, IPPROTO_ICMP); SOCKADDR_IN saFrom; char buff[1024]; ip_header_t* ip_header; icmp_header_t* icmp_header; while(1) { int rc = 0; int nFromLen = sizeof(saFrom); rc = recvfrom(sock, buff, 1024, 0, (SOCKADDR *) &saFrom, &nFromLen); // Hier ist GetLastError immer 10022
mfg