Включите опцию сокета SO_LINGER и установите время задержки на 0 секунд. Это заставит TCP прервать соединение, когда оно закрыто, сбросить данные и отправить RST. См. Раздел 7.5 и пример 15.21 в UNP.
В питоне:
def client(host, port):
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM, 0)
s.connect((host, port))
l_onoff = 1
l_linger = 0
s.setsockopt(socket.SOL_SOCKET, socket.SO_LINGER,
struct.pack('ii', l_onoff, l_linger))
# send data here
s.close()