Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
Otvorte C súbor v preferovanej integrované vývojové prostredie .
2
hlavičkové súbory pre prístup k všetky potrebné dátové typy a funkcie , pridaním nasledujúceho kódu v hornej časti súboru : Spojené
# include # include deklarovať a inicializovať premenné potrebné pre prenos súborov zásuvke , pridaním nasledujúceho kódu na hornej časti hlavné funkcie : int port = 4455 ; int sock_fd , int sock_desc , int file_fd , struct stat stat_buf ; off_t file_offset = 0 ; char názov_súboru [ PATH_MAX ] ; struct addrinfo addr , * rs ; struct sockaddr_in addr1 , int addrlen , strcpy ( FILE_NAME , " file.txt " ) ; Inicializácia adresy structs , pridaním nasledujúceho kódu : memset ( & addr , 0 , sizeof addr ) ; addr.ai_family = AF_UNSPEC ; addr.ai_socktype = SOCK_STREAM ; addr.ai_flags = AI_PASSIVE ; getaddrinfo ( NULL , port , a addr , a rs ) ; Vytvoriť nový socket , zviazať socket a nastavte ju na počúvanie pre všetky prichádzajúce pripojenie , pridaním nasledujúceho kódu : sock_fd = zásuvka ( rs - > ai_family , rs - > ai_socktype , rs - > ai_protocol ) , bind ( sockfd , rs - > ai_addr , rs - > ai_addrlen ) ; počúvať ( sock_fd , 1 ) ; Vytvoriť " , zatiaľ čo " slučky a počkajte , pre prichádzajúce spojenia , zadaním nasledujúci kód : while ( true ) { sock_desc = accept ( sock_fd , ( struct sockaddr * ) a addr1 , a addrlen ) ; Otvorte súbor , ktorý chcete previesť , a odoslať ju pomocou funkcie " sendfile " , pridaním nasledujúceho kódu : file_fd = open ( FILE_NAME , O_RDONLY ) ; fstat ( file_fd , a stat_buf ) ; file_offset = 0 ; sendfile ( sock_desc , file_fd , a file_offset , stat_buf.st_size ) ; Zatvorte súbor , socket deskriptor a zásuvky , akonáhle ste hotoví odoslanie súbor , pridaním nasledujúceho kódu : close ( file_fd ) ; close ( sock_desc ) ; } klipart úzke ( sock_fd ) ; Uložte zdrojový súbor . Kompilácie a spustenie programu odoslať súbor pomocou zásuvky .
3
4
5
6
7
8
9