errore void ( char * msg ) {
perror ( msg ) ; < br uscita >
( 0 ) ; }
int main ( int argc , char * argv [ ] ) per
{
int sockfd , portno , n ;
struct sockaddr_in serv_addr ;
struct hostent * server,
char buffer [ 256 ] ;
if ( argc <3 ) {
fprintf ( stderr , "porto hostname uso % s \\ n" , argv [ 0 ] ) ;
exit ( 0 ) ; }
< p > portno = atoi ( argv [ 2] ) ;
sockfd = socket ( AF_INET , SOCK_STREAM , 0);
se ( sockfd < 0 ) per errore
( " presa apertura ERROR" ) ;
server di
= gethostbyname ( argv [ 1 ] ) ;
se (server == NULL) {
printf ( "ERRORE , no come ospite \\ n ");
uscita
( 0 ) ; }
bzero ( ( char * ) & serv_addr , sizeof ( serv_addr ) ) ;
< p > serv_addr.sin_family = AF_INET ;
bcopy ( ( char * ) Server - > h_addr , Stati
( char * ) & serv_addr.sin_addr.s_addr , Stati
server > h_length ) ;
serv_addr.sin_port = htons ( portno ) ;
if ( connect ( sockfd , & serv_addr , sizeof ( serv_addr ) ) < 0 ) per errore
( " Errore di connessione " ) ;
printf (" inserisci il messaggio : " ) ;
bzero (buffer , 256) ;
fgets (buffer , 255 , stdin ) ;
n = write ( sockfd , di buffer , strlen (buffer ) ) ;
if ( n < 0 ) per errore
( " errore di scrittura socket" ) ;
bzero (buffer , 256) ;
n = read ( sockfd , tampone , 255) ;
if ( n < 0 ) per
errore (" errore di lettura dal socket" ) ;
printf ( "% s \\ n" , tampone ) ;
return 0; }
5
Salvare il documento facendo clic su "File" e " Salva ".
6
Chiudere la finestra " gedit " facendo clic sulla "X" in alto a destra . Il terminale viene visualizzata sullo schermo del nuovo
7
compilare il codice UDP digitando quanto segue nella riga di comando : .
Gcc- c udp.c
premere il tasto " Enter ". Il terminale visualizza messaggi di stato di avanzamento , come si compila il file .
8
Utilizzare il programma " UDP " per inviare testo tramite un socket UDP . Nella riga di comando , digitare:
UDP Sostituire " string>