Moin!
Das Problem mit VB ist folgendes: Das Winshock-Modul sendet keinen Zeilenumbruch mit, auf das der Readline Befehl von deinem Java-Server wartet. Deshalb muss dein VB-Programm immer so senden:

Winsock1.SendData "data" & vbCrLf

Dann weiß Readline, wann alle Daten da sind, also das Ende des Datenstroms angekommen ist.

Damit der Server auf eingehende Daten reagiert, kannst du zum Beispiel einen Thread definieren, der mit einer While-Schleife immer mit readLine() auf neue Daten wartet und mit denen dann irgend etwas macht.

Gruß
Johannes