Θεωρώντας ότι ο κώδικας που έχεις γράψει είναι μέρος του προγράμματος και όχι το όλο πρόγραμμά σου, το πρόβλημα σου ότι δεν εξυπηρετεί περισσότερες από μία συνδέσεις, δεν οφείλεται στον κώδικα. Ο κώδικας που έχεις δημοσιεύσει είναι κατάλληλος στο να μπορεί να εξυπηρετήσει πολλαπλά requests, στην ίδια port χωρίς port locking, αλλά το σφάλμα που έχεις κάνει είναι ότι στο event που κάνεις accept το connection, προσπαθείς να "απαντήσεις" - στείλεις δεδομένα - στον client που εκείνη την ώρα προσπαθεί να συνδεθεί.
Αυτό δεν πρόκεται να συμβεί, μιας και αφού είσαι μέσα σε ένα event, και η port δεν έχει ουσιαστικά ανοίξει ακόμα, εσύ προσπαθείς να καλέσεις να απαντήσεις, κάτι που απαιτεί το winsock να είναι σε κάποιο άλλο state - μπορεί να το δεις να δουλεύει σε debug mode, αλλά δεν είναι κάτι που θα τρέξει σε running enviroment. Αυτό το .SendData θα ήταν πιο καλά αν το έβαζες στο _DataArrival event, να απαντούσες στον client, αφού έπερνες πρώτα λάμβανες κάτι από τον client.
Γενικά ο προγραμματισμός σε Winsock και Serial απαιτεί free threading και multitasking, κάτι που η Visual Basic 6 δεν μπορεί να προσφέρει. Θα μπορούσες να βοηθήσεις στην απόκριση του control, με τη χρήση του DoEvents μετά από κάθε εντολή προς το winsock control, αλλά σε υψηλές περιπτώσεις stress τα προβλήματα θα είναι έντονα.
George J.