スタックダンプという言葉を使った人に聞いてくれよな。
Javaとかのstacktraceとはまた違いそうだし。

で、sendtoのバッファのアドレスをわざわざchar*にキャストしてるのは何なんだいったい。
void*を受け取るんだから、そのまま渡せよ。
memsetする時にmemset((char*)data, 0, sizeof(data))とかするバカいないだろ。