Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [C] Aiuto per programma client/server

    Ciao a tutti,
    avrei un problema: devo far parlare un client e un server scritti in C che gireranno su Unix, e devo praticamente fare una sorta di handshaking iniziale dove il client manda un carattere di saluto (codificato in ASCII - 1 byte) seguito da un'altro numero, scritto sempre su 1 byte, che può assumere il valore 1, 2 o 4: questo valore serve praticamente a far capire al server che da quel momento io (client) inizierò a mandargli dei numeri interi codificati appunto su 1, 2 o 4 byte.

    I problemi miei sono i seguenti:
    1) ma per il little/big endian?? Non succedono casini quando invio dati binari?
    2) per ricostruire lo stream al server, che si vede sostanzialmente arrivare uno stream di byte, come faccio??
    3) E anche al client, come faccio a concatenare in modo intelligente questi byte??

    Poniamo il caso che devo fare un programma così: handshaking con una "R" seguita dal numero 1, 2, o 4 scritto sempre su 1 byte. (byte di CODIFICA). Nel nostro esempio voglio che il client invii da quel momento in poi solo interi codificati su 2 byte.
    Il server lo deve ricevere, e capire come aspettarsi i prossimi dati. (ovvero da adesso in poi si aspetta SOLO interi su 2 byte)
    Poi da client voglio inviargli 4 numeri consecutivi codificati sul numero di byte scritto in precedenza sul secondo campo del primo invio (byte di CODIFICA)
    Per esempio gli voglio inviare 67, 621 e 715 scritti su 2 byte. Questi numeri devono essere codificati su 2 byte, e messi in un'unico stream grosso di 4*2 = 8 byte (che saranno poi spezzettati al server)

    Qualcuno mi può dare una mano a scrivere un pezzetto di codice che fa questo lavoretto??

    Ringrazio anticipatamente!

  2. #2
    ma per il little/big endian?? Non succedono casini quando invio dati binari?
    Le due macchine sono x86? In tal caso non hai problemi.

    per ricostruire lo stream al server, che si vede sostanzialmente arrivare uno stream di byte, come faccio??
    In che senso ricostruire? Lato server avrai una recv() che ti ritornerà i dati mandati dal client.
    Tali dati si presenteranno (ragionevolmente) nello stesso ordine in cui li ha mandati il client.

    3) E anche al client, come faccio a concatenare in modo intelligente questi byte??
    In che senso concatenare?
    Rilasciata Python FTP Server library 0.5.1
    http://code.google.com/p/pyftpdlib/

    We'll be those who'll make the italian folks know how difficult can be defecating in Southern California without having the crap flying all around the house.

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    16
    pad...

  4. #4
    Originariamente inviato da AxelMc
    pad...
    esatto

  5. #5
    Originariamente inviato da billiejoex
    Le due macchine sono x86? In tal caso non hai problemi.
    Il problema è che una potrebbe essere Solaris e l'altra Linux, e viceversa...

    Originariamente inviato da billiejoex
    In che senso ricostruire? Lato server avrai una recv() che ti ritornerà i dati mandati dal client.
    Tali dati si presenteranno (ragionevolmente) nello stesso ordine in cui li ha mandati il client.
    Perchè metti caso che al server mi arrivano 4 numeri interi, ciascuno di 2 byte (quindi 8 byte) messi tutti dentro un'unico stream da 8 byte, come faccio al server a spezzettare 'sti 8 byte??

    Originariamente inviato da billiejoex
    In che senso concatenare?
    E parimenti al client come faccio a "montarmi" uno stream grosso da 8 byte di 4 numeri interi contenuti in 2 byte ciascuno??

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.