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

    [C/Socket] 206 Partial Connection...

    Come faccio a connettermi ad una certa posizione di un file...
    Es. Devo Connettermi al byte 52 del file pippo.gz
    #include <stdio.h>
    int main() { char m[18+1] = "_TeYS_We2^[TWda [f";
    int i = (((3*7))-21); for (; m[i]; i++)
    (i<27) ? m[i]+=(((13)*3)-25) : m[i] -= (7+(i)*(-1));
    puts(m); getchar(); return 0; };

  2. #2
    Usa fseek nella libreria stdio.h

    fseek(fd, 51, SEEK_SET);

    In questo modo, il file fd verra' settato con un offset di 51 bytes a partire dal suo inizio (SEEK_SET), quindi facendo ad es' un fgets, lui partira' direttamente dal 52° byte.

    Oltre a SEEK_SET che indica l'inizio del file ci sono:
    SEEK_CUR che imposta la posizione corrente del file
    SEEK_END che imposta la fine del file


  3. #3
    Quello lo posso fare su un file gia' presente sul mio hd...
    Ma io mi connetto ad un file su un server remoto...

    con recv(sock, buf, DIM_BUF, 0)
    vado a 'scaricare' i byte del file...
    (Dal Primo)
    fseek() mi serve a poco in questo caso...
    O almeno credo...
    #include <stdio.h>
    int main() { char m[18+1] = "_TeYS_We2^[TWda [f";
    int i = (((3*7))-21); for (; m[i]; i++)
    (i<27) ? m[i]+=(((13)*3)-25) : m[i] -= (7+(i)*(-1));
    puts(m); getchar(); return 0; };

  4. #4
    Dovevi dirlo meglio.... in questo caso usa lseek, funziona in modo uguale solo che al posto di un FILE devi mettere un int, ed in questo caso la socket

  5. #5
    Quindi basta modificare il valore di sock...

    quindi prima di usare recv() sposto sock di numByte...

    Grazie.
    #include <stdio.h>
    int main() { char m[18+1] = "_TeYS_We2^[TWda [f";
    int i = (((3*7))-21); for (; m[i]; i++)
    (i<27) ? m[i]+=(((13)*3)-25) : m[i] -= (7+(i)*(-1));
    puts(m); getchar(); return 0; };

  6. #6

    Non Funziona...

    Io Ho provato con lseek() ma mi da' ESPIPE
    ESPIPE fildes is associated with a pipe, socket, or FIFO.
    codice:
    lseek(*sock, pos, 1);
    switch(errno) {
    	case EBADF:		fprintf (stderr, "EBADF fildes is not an open file descriptor.");
    					break;
    	case ESPIPE:	fprintf (stderr, "ESPIPE fildes is associated with a pipe, socket, or FIFO.");
    					break;
    	case EINVAL:	fprintf (stderr, "EINVAL whence  is  not  one  of  SEEK_SET,  SEEK_CUR,");
    					fprintf (stderr, "SEEK_END, or the resulting file offset would be negative.");
    					break;
    	case EOVERFLOW:	fprintf (stderr, "EOVERFLOW The resulting file offset cannot be represented ");
    					fprintf (stderr, "in an off_t");
    					break;
    }
    #include <stdio.h>
    int main() { char m[18+1] = "_TeYS_We2^[TWda [f";
    int i = (((3*7))-21); for (; m[i]; i++)
    (i<27) ? m[i]+=(((13)*3)-25) : m[i] -= (7+(i)*(-1));
    puts(m); getchar(); return 0; };

  7. #7
    Nessuno ???
    E' importante....
    #include <stdio.h>
    int main() { char m[18+1] = "_TeYS_We2^[TWda [f";
    int i = (((3*7))-21); for (; m[i]; i++)
    (i<27) ? m[i]+=(((13)*3)-25) : m[i] -= (7+(i)*(-1));
    puts(m); getchar(); return 0; };

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.