Marcus Obst marcus.obst@s2003.tu-chemnitz.de (Di 19 Sep 2006 13:58:04 CEST):
On Tue, Sep 19, 2006 at 01:30:55PM +0200, martin schmidt wrote:
Hallo Martin,
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...
int recv_socket(int s, char* buf){ int bytes; if((bytes=recv(s,buf,sizeof(buf)-1,0))==-1) perror("recv() failed");
~~~~~~~~~~~~ -> hier kommt immer 3 heraus
... Du bist einfach zu gut und zu schnell :)
int main (int argc, char *argv[]){ int sock, bytes; char buf[BUFFER_SIZE];
hier wuerde sizeof(buf) auch die von dir erwartete BUFFER_SIZE liefern.
sizeof(*buf)
sollte auch verstanden werden.
Heiko