Вы можете получить RST, изменив настройку SO_LINGER. Вы хотите, чтобы l_onoff был ненулевым, а l_linger - нулевым. Как только вы это сделаете, закрытие сокета приведет к сбросу.
struct linger lng;
lng.l_onoff = 1;
lng.l_linger = 0;
setsockopt(sock, SOL_SOCKET, SO_LINGER, &lng, sizeof(lng));
close(sock);