Puntatori e socket

di il
24 risposte

24 Risposte - Pagina 2

  • Re: Puntatori e socket

    È sicuro che read e write non avvengano in maniera "atomica", qualsiasi sia la semantica.
    è un po' tardi e sono stanco: cosa, esattamente, ti turba?
  • Re: Puntatori e socket

    maffo95 ha scritto:


    Per prima cosa ti ringrazio per l'aiuto che mi stai dando fino ad ora
    Dopo un pomeriggio di approfondimento sulle socket ho riscritto un po' il mio codice e si avevo notato l'errore (anche se ho letto che è difficile che la read o la write non avvengano in maniera atomica) che mi stai dicendo e infatti ho postato il codice sul post iniziale della discussione ma il problema è rimasto e non so più dove sbattere la testa :S
    Direi che è ora, come ti è stato già detto da +m2+ di fare una semplice prova.

    Elimina l'invio della prima parte della struttura e manda solo la stringa e vedi se la ricevi, poi vediamo.
  • Re: Puntatori e socket

    Salve a tutti grazie per essere ancora qui ad aiutarmi
    Allora ho provato a fare dei test come mi hai detto LPs e il messaggio non viene passato anche se levo il passaggio della struttura ho pensato che allora non viene scritto niente nella socket, ma allora nemmeno la struttura dovrebbe essere scritta eppure passa. Quindi veramente non riesco a capire dove sta lo sbaglio...ho provato anche a cambiare la struttura cambiando *buf in buf[1024] e passando l'intera struttura in questa maniera il messaggio passa solo che la struttura non la posso modificare perchè fa parte dei file di base del progetto dati dal professore.
    Non so più dove sbattere la testa cioè teoricamente come sto facendo mi torna o provato anche a fare un piccolo client server (da zero senza le due funzioni postate) e funziona tutto quindi a sto punto penso sia un problema del server perchè il client me l'ha dato il professore...Il server che ho fatto è un server multithread dove nel main c'è il listener delle connessioni alla socket e per ogni collegamento mette il cliente in una coda globale (non uso la select). Ogni thread è in attesa di un cliente da servire appena arriva soddisfa la prima richiesta che fa e lo rimette in coda...vi ho scritto brevemente come funziona per sapere da voi se c'è già qualcosa di sbagliato nella progettazione del server.
  • Re: Puntatori e socket

    Scusa, non offenderti troppo, ma fossi in te farei così

    1) mandi un singolo carattere sulla socket
    2) supponiamo che non arrivi.
    Allora prime cose da fare...
    - controllare di non avere firewall attivi, nel caso disattivali.
    - usa UN ALTRO programma che funziona sicuramente per mandare un carattere al server
    se con l'ultimo risolvi, significa che è CLIENT scritto male.
  • Re: Puntatori e socket

    maffo95 ha scritto:


    ...ho provato anche a cambiare la struttura cambiando *buf in buf[1024] e passando l'intera struttura.....

    Mi viene un tremendo dubbio: a cosa punta msg->buf ???? Punta ad un array statico? Ad uno dinamico? A acc--zo come si dice in gergo tecnico?
  • Re: Puntatori e socket

    +m2+ ha scritto:


    Scusa, non offenderti troppo
    No sie ma che offendere vai tranquillo so di non essere ferrato quindi accetto qualsiasi critica da persone più esperte di me
    Ho già fatto un client semplice che invia messaggi al server e non funziona quindi il problema è sicuramente sul server anche perchè come ho già detto il client non l'ho scritto io ma il professore e nessuno a quanto so ha riscontrato problemi.

    LPs ha scritto:


    Mi viene un tremendo dubbio: a cosa punta msg->buf ???? Punta ad un array statico? Ad uno dinamico?
    punta ad un array dinamico è un puntatore che viene allocato a seconda della lunghezza del messaggio che deve essere inviato
  • Re: Puntatori e socket

    Ne sei sicuro? Provato a mettere una bella printf("%s\n", msg->buf); all'inizio della funzione?
  • Re: Puntatori e socket

    Mi stampa il messaggio
  • Re: Puntatori e socket

    Io, dalle funzioni che hai posta, non vedo null'altro di strano.

    Probabilmente è dovuto ad altro che non sta in quella parte di codice.

    Ti direi di postare il progetto, ma non so se io avrò tempo di dargli un'occhiata complessiva, ma magari qualche anima pia...
  • Re: Puntatori e socket

    No sie sono più di 1200 righe di codice neanche se la pago una persona mi aiuterebbe ahahaha grazie comunque mi hai aiutato a migliorarlo un po' almeno
Devi accedere o registrarti per scrivere nel forum
24 risposte