Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    41

    [c / c++] Problema di sfasamento pacchetti

    Salve a tutti ho un problema con l'invio di dati usando i winsock tcp...in particolare ho un problema di ricezioni di pacchetti di dati in ordine non corretto, fortunatamente ( usando il tcp) non ho nessuna perdita di dati.
    In pratica devo inviare l'immagine dello schermo server al programma client che la visualizza( stò facendo un desktop remoto come area progetto) .L'immagine l'ha converto in 16 grigi cosi da ridurne la dimensione ( sono comunque 400 kb) e far si che si presti bene ha una futura semplice compressione di tipo Run-length. L'immagine è inviata in tanti piccoli pacchetti da 500 byte ma su qualche lan è in internet mi dà appunto questo problema di errata ricezioni , cioè dei dei miei 500 byte ogni tanto una decina vengono messi prima di altri creando uno sfasamento molto fastidioso .. allego un pezzo dell l'immagine convertita in jpg (in realtà io invio bitmap ma per problemi di dimensione...)effettivamente ricevuta dal client dove spero capiate il problema che ho descritto.


    Questa problema non capita su tutte le reti che ho provato... su certe funziona è non dà segno di questi sfasamenti su altre invece si..inoltre se faccio girare sia il server che il client sullo stesso pc e mi connetto in locale questo problema non si presente assolutamente mai,poi se fra un send è un altro metto un delay abbastanzta consistente funziona tutto normale ...quindi ho buone ragioni per pensare che non sia un problema di codice ma di un pessimo settaggio dei socket...a qualcuno è capita mai una cosa del genere?

    se volete che posti il codice ditemelo.

    grazie in anticipo, siete sempre molto disponibili
    Immagini allegate Immagini allegate

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Io penso che sia un problema del tuo codice ...

    Anche perche' non ho capito l'alternativa "pessimo settaggio dei socket" ... che vuol dire? Che il TCP/IP non funziona piu'?

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    41
    Assolutamente no , ho detto che non ho perdita di pacchetti ma solo uno sfasamento, per il settaggio mi riferivo alla funzione setsockopt() e hai sui molteplici possibili parametri che io non ho usato perchè mi sono accontentado dei valori di dafualt...

    Stamane ho provato a far girare i prog su una rete che mi dava il problema e mettendo uno Sleep(20) tra una send è l'altra , rallentando di molto il tutto , l'invio era perfetto senza nessuno sfasamento...perciò credo che il codice sia corretto, qualcuno ha la minima idea del perchè succede tutto ciò??

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Ma che vuol dire "uno sfasamento"? Vuoi dire che arriva un pacchetto prima di un altro? Non e' possibile con TCP ... ecco perche' dico che il problema (anche se "nascosto") e' nel tuo programma ...

    Comunque ... decidi tu ... secondo me dovresti mostrare il codice in cui trasmetti e soprattutto quello in cui ricevi ...

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    41
    scusate il ritardo ..ma era in gita.. ...comunque ho risolto aumentando la grandezza dei pacchetti inviati a 1500 non presenta il problema in nessuna rete... meglio...mi piacerebbe capire perchè...la mia prof ha detto che probabilmente era un problema di tcpwindowsize...mah......grasie comunque....ben accetti chiarimenti da chi ha avuto esperienze del genere e risolto...

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Io rimango convinto che il problema fosse risolvibile modificando il codice ...

    Sul problema della tcpwindowsize mi sembra sia - con tutto il rispetto - una stupidaggine.

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.