Oliver Kowalke wrote: > I've written an c++ class which wrappes a socket.. With function writen() > you can write to an TCP and UDP socket ( TCP : pointer to stuct sockaddr == > NULL; UDP : pointer to struct sockaddr != NULL). If I use this function > with TCP sockets all works. If I call this function for an UDP socket it > generates an SIGSEGV signal. > What is wrong? Some comments: 1. The last parameter to sendto() should be the size of the protocol-specific socket address, e.g. "sizeof struct sockaddr_in" for an IPv4 address. 2. This code won't handle a non-blocking socket correctly. 3. There isn't much point in implementing a writen() function for UDP sockets; packet boundaries are significant for UDP. As to why it's raising SIGSEGV, maybe it's due to the arguments being passed in. Certainly, invalid values for ptr or n will cause a segfault. Try using a debugger. -- Glynn Clements <glynn.clements@virgin.net> - : send the line "unsubscribe linux-net" in the body of a message to majordomo@vger.kernel.org