ciao a tutti è la prima volta ke scrivo in questo forum e volevo sapere se potete darmi una mano....
ho 1 problema:![]()
![]()
dovrei fare una funzione che legge un file dal disco e la scrive su una soket tutto questo in C.![]()
grazie anticipatamente a tutti....
ciao a tutti è la prima volta ke scrivo in questo forum e volevo sapere se potete darmi una mano....
ho 1 problema:![]()
![]()
dovrei fare una funzione che legge un file dal disco e la scrive su una soket tutto questo in C.![]()
grazie anticipatamente a tutti....
intanto dovresti dirci se lavori su linux/unix o se sei su windows...
Live fast. Troll hard.
Pythonist | Djangonaut | Puppeteer | DevOps | OpenStacker | Lost in malloc
Team Lead @Gameloft Barcelona
linux... non sapete + o - come si potrebbe fare?
vi sarei grato anche se potreste postare anche quake codice di esempio...
![]()
![]()
Per quel poco che ne so io, il socket è una cosa quindi che deve essere mandata...
Devi mandarla a qualche indirizzo? Devi mandare l'intero file, come se fosse un allegato??
"Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)
"Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)
http://xvincentx.netsons.org/programBlog
mi sa che c'avete un po di confusione![]()
una socket è un mezzo di comunicazione ... come fosse un'autostrada
i dati tu li devi far transitare su rispettando certe regole e strutture per farlo
nel tuo caso ti devi anche assemblare il veicolo per comunicare da una parte all'altra, ovvero il protocollo di comunicazione tra server e client ed il client e server stesso (ovvero il mittente ed il ricevente del pacchetto che viene trasportato dal veicolo sull'autostrada)
per riassumere:
autostrada => socket
veicolo => protocollo
mittente => client/server (dipende in quale verso va il veicolo)
ricevente => client/server (dipende in quale verso va il veicolo)
The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand
si lo so cosa è una soket e + o - come funziona....provo a postare la funzione ke ho fatto io se qualcuno ne sa qualcosa magari la può leggere e correggere.... ve ne sarei grato.....
void leggiScrivi (char [] nome,ind fdsok)
{
//prototipi
/*
int open(const char *pathname, int flags)
int close(int fd)
ssize_t read(int fd, void * buf, size_t count)
ssize_t write(int fd, void * buf, size_t count)
void *malloc(size_t size);
*/
//Apre il file indicato da pathname nella modalità indicata da flags
//La funzione ritorna il file descriptor in caso di successo e -1 in caso di errore
int fd open(& nome, O_RDWR);
/*void *mallocc alloca la memoria necessaria per contenere size byte;
restituisce il puntatore alla memoria allocata*/
int *indbuff=malloc(sizeof(fd));
/*Cerca di leggere n byte(ultimo parametro) dal file fd al buffer
ritorna il numero di byte letti in caso di successo e -1 in caso di errore*/
int nByteRead= read(fd, & indbuff, sizeof(fd));
/*Scrive n byte(ultimo parametro) dal buffer sul file fdsok
ritorna il numero di byte scritti in caso di successo e -1 in caso di errore*/
int nByteWrute= write(fdsok, void & indbuff, sizeof(fd));
int close(int fd);
}
grazie a tutti
Innanzitutto devi creare la socket, specificando se lavori in IPv4 o v6 ed il tipo di protocollo di trasporto.
Dopodichè devi inizializzare la struttura sockaddr_in (indichi indirizzo, porta, ...).
Quindi ti connetti al server con connect() ed una volta stabilita la connessione effettui le tue operazioni di read() e write().
Live fast. Troll hard.
Pythonist | Djangonaut | Puppeteer | DevOps | OpenStacker | Lost in malloc
Team Lead @Gameloft Barcelona