Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    2

    [VB6] Indirizzo in uso (chiusura connessione)

    Salve a tutti,
    utilizzo un client da me scritto in vb6 che si connette ad un server esterno di un fornitore.
    Il server accetta solo connessioni da uno specifico ip/porta.
    Quando devo chiudere il mio client per aggiornarlo richiamo il metodo winsock1.close e chiudo il client.
    Il problema è che la mia localport rimane comunque in "uso" per qualche minuto (una specie di stato "attesa chiusura" che mi rende impossibile la riconessione veloce al server.
    Infatti devo aspettare che la porta torni disponibile per potermi connettere.
    Ci tengo a sottolineare che NON POSSO assolutamente cambiare la local port.
    Quando provo a riconnettermi dopo aver chiuso il client la sub "Winsock1_Error" mi restituisce l'errore "10048---Indirizzo in uso".

    Vorrei sapere se c'è un qualche modo per "forzare" la porta e farla tornare disponibile subito.

    cordiali saluti
    grazie
    Enrico

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Mi sa di no ... questa e' una caratteristica del TCP.
    Alla chiusura del socket, la porta e' in TIME_WAIT in genere di 240 secondi, per permettere all'ultimo segmento (inviato in precedenza) eventualmente presente ancora in rete, di scadere. Questo per evitare eventuali duplicazioni.

    In tutti i casi mi sembra strano che tu non debba poter cambiare la local port.

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    2
    ok grazie.
    peccato. immaginavo fosse così ma speravo ci fosse una qualche soluzione di forzatura.
    no, non posso cambiarla perchè il server del fornitore al quale mi connetto accetta connessioni solo dall'ip e dalla porta specificata al momento della stipulazione del contratto.
    purtroppo non accettano nemmeno un range di porte.

    grazie comunque

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Non puoi forzare questi tempi perche' potresti pregiudicare il funzionamento del TCP.

    Se non puoi cambiare il socket locale, allora non dovresti chiudere la connessione se non ti serve assolutamente farlo.

    Il consiglio e' di rivedere il contratto e prevedere almeno un'altra porta ...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.