allora....facciamo un po' di chiarezza...
il programma è progettato per funzionare in una LAN ma, ovviamente, in fase di programmazione sia il client che il server vengono eseguiti sul mio PC.
per fare questo sul winsock del client ho impostato come ipremoto, ovvero come ip del server, 127.0.0.1, ovvero l'i.p. della macchina locale.
è ovvio che quando il programma sarà finito il 127.0.0.1 sarà sostituioto dall' I.P. del PC che caricherà il programma server.
Detto questo...
le prote corrispondo perfettamente tra client e server tanto che io allo stesso evento wsck_connect ho gia inviato altri dati allo stesso winsock server.
in pratica si verifica una cosa del genere

PRIMA FASE
winsock connesso al server
winsock invia i dati al server
i dati vengono ricevuti correttamente dal server
winsock chiuso
winsock del server chiuso e rimesso in ascolto

SECONDA FASE
winsock connesso al server
winsock invia i dati al server
i dati NON vengono ricevuti dal server (in debug mode sul server quando vengono inviati non si verifica l'evento wsck_dataarrival)
winsock del server è sempre connesso correttamente
winsock del client è sempre connesso correttamente
chiudo entrambi i winsock

Spero che ora la cosa sia un po' più chiara. in sostanza la connessione c'è e funziona i dati vengono inviati ma non arrivano.
please heeeeeeeeeelp meeeeeeeeee