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

    [C] socket read

    ho riscontrato un problema su un programma che sto cercando di far funzionare...

    Mi viene passato tramite socket un mp3...

    per prima cosa mi viene passata la lunghezza dell mp3 (mess->data_length)...

    in seguito "alloco" una variabile che contiene il dato ver e proprio e leggo per quanto mi viene indicato da mess->data_length.

    codice:
    		mess->dato = (char* )malloc((unsigned long int)mess->data_length);
    		n = read(newsockfd,add_mess->dato,(unsigned long int)mess->data_length);
    quando vado a salvare il dato e ricostruisco l' mp3 pero mi vengono riprodotti solo i primissimi secondi....

    andando a verificare i valore di n (che se non sbaglio dovrebbe restituire i byte letti...) mi ritrovo sempre come valore 65535 che in esadecimale è FFFF.

    Esiste per caso un limite di byte leggibili per ogni read...??
    perchè non capisco perchè non riesca a leggere per intero il file mp3...

    e nel caso come posso fare...qualcuno ha una soluzione...grazie

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Se il valore restituito dalla read e' -1 (FFFF) allora c'e' stato un errore e devi esaminare la variabile errno per capire cosa e' successo.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    64
    Scusami potresti farmi un esempio di come dovrei fare...e sopratutto cosa sarei in grado di capire con errno...??

    la cosa strana è che io ho messo un controllo di questo tipo...

    codice:
    if (n < 0) error("ERROR reading from socket--add");
    che mi viene addebitamente aggirato visto che il valore di n 65535...la cosa strana è che n è un banale intero quindi mi pare che non possa neanche assumere questo valore....cosa che dovrebbe fare se fosse "unsigned"....

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 © 2024 vBulletin Solutions, Inc. All rights reserved.