Cliente: (client1.c)
1 incluyen <unistd.h> 2 #include <stdlib.h> 3 #include <sys / socket.h> 4 #include <arpa / inet.h> 5 #include < string .h> 6 7 #define BUFSIZE 1024 8 #define SERV_IP "127.0.0.1" 9 #define SERV_PORT 6666 10 int main () 11 { 12 int CFD; 13 int n; 14 Char buf [BUFSIZE]; 15 struct sockaddr_in serv_addr; 16 // socklen_t serv_addr_len; 17 cfd = socket (AF_INET, SOCK_STREAM, 0 ); 18 19 memset (y serv_addr, 0 , sizeof (serv_addr)); 20 serv_addr.sin_family = AF_INET; 21 serv_addr.sin_port = htons (SERV_PORT); 22 inet_pton (AF_INET, SERV_IP, y serv_addr.sin_addr.s_addr); 23 Si (connect (cfd, ( struct sockaddr *) y serv_addr, sizeof (serv_addr)) < 0 ) 24 { 25 perror ( " conexión "); 26 de salida ( 1 ); 27 } 28 29 mientras que ( 1 ) 30 { 31 fgets (buf, sizeof (BUF), stdin); 32 de escritura (CFD, buf, strlen (BUF)); 33 n = leer (CFD, buf, sizeof (BUF)); 34 de escritura (STDOUT_FILENO, buf, n); 35 } 36 37 cerca (CFD); 38 de retorno 0 ; 39 }
Servidor: (server1.c)
1 #include <stdio.h> 2 #include <unistd.h> 3 #include <sys / socket.h> 4 #include <stdlib.h> 5 # include <arpa / inet.h> 6 #include <ctype. h> 7 #include < string .h> 8 #define SERV_PORT 6666 9 #define BUFSIZE 1024 10 #define SERV_IP "127.0.0.1" 11 12 int main () 13 { 14 int LFD, cFD; 15 int n; 16 Char buf [BUFSIZE]; 17 structserv_addr sockaddr_in, clie_addr; 18 socklen_t clie_addr_len; 19 lfd = socket (AF_INET, SOCK_STREAM, 0 ); 20 21 serv_addr.sin_family = AF_INET; 22 serv_addr.sin_port = htons (SERV_PORT); 23 serv_addr.sin_addr.s_addr = htonl (INADDR_ANY); 24 // memset (y serv_addr, 0, sizeof (serv_addr)); 25 // inet_pton (AF_INET, SERV_IP, y serv_addr.sin_addr.s_addr); 26 27 28 Si (bind (LFD, ( struct sockaddr *) y serv_addr, sizeof (serv_addr)) == - 1) 29 { 30 perror ( " unen " ); 31 de salida ( 1 ); 32 } 33 34 si (escuchar (LFD, 128 ) == - 1 ) 35 { 36 perror ( " escuchar " ); 37 de salida ( 1 ); 38 } 39 40 clie_addr_len = sizeof (clie_addr); 41 CFD = accept (LFD, ( struct sockaddr *) y clie_addr, yclie_addr_len); 42 Si (CFD < 0 ) 43 { 44 perror ( " aceptar " ); 45 de salida ( 1 ); 46 } 47 mientras que ( 1 ) 48 { 49 n = leer (CFD, buf, sizeof (BUF)); 50 para ( int i = 0 ; i <n; i ++ ) 51 buf [i] = toupper (buf [i]); 52 de escritura (cfd, buf, n); 53 54 } 55 cerca (CFD); 56 cerca (LFD); 57 de retorno 0 ; 58 }