while (true) {
SOCKET *arg = (SOCKET*)malloc(sizeof(SOCKET));
*arg = accept(srv_sock);
_beginthread(thread_func, 0, (void*)arg);
}
void thread_func(void* arg) {
SOCKET cli_socket = *(SOCKET*)arg;
// ...
shutdown(cli_socket);
close_socket(cli_socket);
free(arg);
}