Hallo,
dein Problem ist, dass sizeof() innerhalb der recv_socket() Funktion immer nur 4 (was ja fuer einen Pointer auf einen Char genug ist) zurueckgibt. Er kann an der stelle nicht wissen, das dort ein Array kommt bzw. kommen soll...
das ist mir mittlerweile auch aufgegangen ;-). Werde also sizeof(buf) der Funktion direkt übergeben.