Newsgroup: it.comp.lang.visual-basic
Titolo: Ancora il maledetto Winsock...

Ok vengo subito al punto.
Ho un controllo winsock (client) che trasmette su porta 1500 e un controllo
winsock (server) che riceve sulla stessa porta.
Invio un file dal client e alla fine trasferisco una stringa di tipo
"Msg_eof".
In rete LAN funziona tutto alla perfezione.
Ma appena esco dalla LAN, la eof non arriva (anzi arriva una volta ogni 20
prove!).
Allora correggo il programma e spedisco una eof ogni 4 secondi finchè non
riceve un feedback "Ricevuta_eof".
Quindi riprovo la cosa e non funziona lo stesso.
La eof viene inviata ogni 4 secondi ma il server non la riceve.
Dove sbaglio?
Vi posto il codice.
WSCK è il controllo winsock.
'LATO SERVER
Private Sub WSCK_DataArrival(Index As Integer, ByVal bytesTotal As Long)
'    Dim buffileD, msg1 As String
    Dim RecBuffer As String
    Dim Ret As Integer
If True Then 'SUpload = False Then
      Dim retvalue As Long
      Dim returnstring As String
    WSCK(Index).Tag = 0
    'Scarica il messaggio dal buffer
    WSCK(Index).GetData msg, vbString
    If Left(msg, 2) = "01" Then
    ................................
   ElseIf Left(msg, 2) = "04" Or intransito(Index - 1) Then ' upload
    RecBuffer = msg
    Select Case Left(RecBuffer, 11)
        Case "04#Msg_Eof_"
            Close #FL(Index - 1)
            intransito(Index - 1) = False
            WSCK(Index).SendData "Fine Upload"   //ECCO LA RIGA INCRIMINATA!
            Cn(Index - 1) = 0
            DimensioneFile(Index - 1) = 0
            Label1(Index - 1).Caption = "File ricevuto."
e bla bla bla
Mentre sul lato CLIENT abbiamo
   WSCK(1).SendData "10#Msg_Eof_"    'end of file tag
    Pause 4
    While FineUpload = False
        WSCK(1).SendData "10#Msg_Eof_"    'end of file tag
        Pause 4
    Wend
Il msg_eof parte (ne sono sicuro) ma non arriva se la rete è intasata (e per
intasato intendo 40KB [KILOBYTE!!!] al secondo, cioè quando la fibra di
fastweb va lentissima...)
La variabile FineUpload diventa True quando riceve "Fine Upload" dal Server
(ma non arriva mai perchè al server non arriva mai il msg_eof)
bye
-- 
Esistono 10 tipi di persone: chi conosce il binario e chi no.
www.nicolaottomano.it

 If True Then 'SUpload = False Then
Che significa?
Per il resto, sicuro di non far confusione fra 04 e 10?

 Per il resto, sicuro di non far confusione fra 04 e 10?
C...zo! Non me ne ero mai accorto! Il problema è ce uso 04 per il 2°
tentativo e 10 per il primo.
Quindi al primo tentativo (LAN) tutto ok, mentre in condizioni di traffico
parte il secondo tentativo e devo gestire con 10.
Questo spiega perchè in LAN funziona alla perfezione.
Grazzie mille. ora provo


 è ben commentato
Potresti ripetere (se vuoi morire giovane) l'ultima frase?
Non ho ben capito, c'è qualche interferenza... <eg>

Il codice originale è molto sporco ed è pieno di commenti cone quello.
Non ho mai capito che cosa vuol dire quel   * 'SUpload = False Then * dopo
l'istrizione * If True Then *
Forse l'autore inizialmente usava una variabile chiamata SUpload (che viene
inizializzata a False all'avvio dell'applicazione, ma poi non viene più
usata...)
Inoltre quell' If True Then non so a che cosa possa servire (ho cercato ma
non ho trovato una spiegazione logica).
Alla fine è sempre True!!! quindi entra sempre nell'if....
Se riesci a darmi qualche delucidazione ti sono grato.
bye
PS torno verso le 19.30
Ora devo fare un esame di laboratorio di Informatica (linguaggio C)


 Se riesci a darmi qualche delucidazione ti sono grato.
Cosa dovrei mai aggiungere?
E' solo un modo per sostituire quell'If originale in modo che sia sempre
vero.
Più pratico che commentare l'If e l'End If, ma certamente più schizofrenico.
Se quel codice è pubblicato da qualche parte (ovvero non l'hai avuto
privatamente) ed è stato lasciato così, è roba da forti bevitori.

 privatamente) ed è stato lasciato così, è roba da forti bevitori.
E' presente sul SC.
Scarica il progetto Winsockb.zip
So che sei un abile tester di programmi.
Ti andrebbe di cercare eventuali bug sul Messenger che ho creato e che
voglio postare come nuovo progetto sul SC?
bye


 voglio postare come nuovo progetto sul SC?
Non ho tempo (a dir il vero sono un po' distratto di questi tempi).
Rammento il tuo post qualche tempo fa.
Abbi pazienza, lasciami sparare gli ultimi colpi...

 Abbi pazienza, lasciami sparare gli ultimi colpi...
Detta cosě č una frase tristissima.... SU CON LA VITA!


 Detta cosě č una frase tristissima.... SU CON LA VITA!
Tristissima? Impazzito? Mica parlavo di VB...

 Tristissima? Impazzito? Mica parlavo di VB...
e di che allora?


 e di che allora?
Ahhh, spensierata (mio padre diceva "bruciata") gioventů...