3 Erklærer og initialisere variablene som er nødvendige for filoverføring socket, ved å legge inn følgende kode på toppen av din viktigste funksjon:
int port = 4455 ; int sock_fd ; int sock_desc ; int file_fd ; struct stat stat_buf ; off_t file_offset = 0; røye filnavn [ PATH_MAX ]; struct addrinfo adr , * rs ; struct sockaddr_in ADDR1 ; int addrlen ;
strcpy ( filnavn , " MINFIL.TXT ");
4
Initialiser adresse structs , ved å legge følgende kode :
memset (& adr , 0 , sizeof adr ) ; addr.ai_family = AF_UNSPEC ; addr.ai_socktype = SOCK_STREAM ; addr.ai_flags = AI_PASSIVE ;
getaddrinfo ( NULL , port , og adr , og rs ) ;
5
Opprett en ny socket , fell stikkontakten og sett den til å lytte etter innkommende tilkoblinger , ved å legge følgende kode :
sock_fd = socket ( rs- > ai_family , rs- > ai_socktype , rs- > ai_protocol ), bind ( sockfd , rs- > ai_addr , rs- > ai_addrlen ) , høre ( sock_fd , 1 ) ;
6
Lag en "mens " loop og vent for en innkommende tilkobling , ved å skrive følgende kode :
while ( true) { sock_desc = akseptere ( sock_fd , ( struct sockaddr * ) & ADDR1 , og addrlen ) ;
7 < p> Åpne filen du vil overføre og sende den med " sendfile "-funksjonen , ved å legge følgende kode :
file_fd = open ( filnavn , O_RDONLY ) ; fstat ( file_fd , og stat_buf );
file_offset = 0; sendfile ( sock_desc , file_fd , og file_offset , stat_buf.st_size ) ;
8
Lukk filen , socket beskrivelse og kontakten når du er ferdig sender fil , ved å legge følgende kode :
nær ( file_fd ), nær ( sock_desc ) ;}
nær ( sock_fd ) ;
9
Lagre kildefilen . Kompilere og kjøre programmet for å sende en fil ved hjelp av en stikkontakt .