3 Erklær og initialisere variabler er nødvendige for filoverførslen socket, ved at tilføje følgende kode i toppen af dine vigtigste funktion: < br >
int port = 4455 , int sock_fd , int sock_desc , int file_fd , struct stat stat_buf , off_t file_offset = 0; char file_name [ PATH_MAX ] struct addrinfo addr , * rs , struct sockaddr_in addr1 , int addrlen ; < br >
strcpy ( file_name " myfile.txt ");
4
Initialiser adresse structs , ved at tilføje følgende kode : Hej
memset (& adr , 0 , sizeof addr ) addr.ai_family = AF_UNSPEC , addr.ai_socktype = SOCK_STREAM , addr.ai_flags = AI_PASSIVE ,
getaddrinfo ( NULL , havne , & adr , & rs) ;
5
Opret en ny sokkel , binde stikket og sæt den til at lytte til eventuelle indgående forbindelser , ved at tilføje følgende kode : Hej
sock_fd = socket (rs -> ai_family , RS- > ai_socktype , rs- > ai_protocol ) bind ( sockfd , RS- > ai_addr , RS- > ai_addrlen ) lyt ( sock_fd , 1 ),
6
Opret en " mens" loop og vente for en indgående forbindelse , ved at skrive følgende kode : Hej
while ( true) { sock_desc = accept ( sock_fd ( struct sockaddr * ) & addr1 , & addrlen )
7 < p> Åbn den fil, du vil overføre og sende det med " sendfile "-funktionen ved at tilføje følgende kode : Hej
file_fd = open ( filnavn , O_RDONLY ), fStat ( file_fd , & stat_buf ) ;
file_offset = 0; sendfile ( sock_desc , file_fd , & file_offset , stat_buf.st_size )
8
Luk filen , socket -deskriptor og stikkontakten, når du er færdig sender fil ved at tilføje følgende kode : Hej
tæt ( file_fd ), tæt ( sock_desc );}
tæt ( sock_fd )
9
Gem kildefilen . Kompilere og køre programmet til at sende en fil ved hjælp af en stikkontakt.