Professional Documents
Culture Documents
q1>>>>
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
if( argc != 3 )
{
printf("Usage: %s server-address server-port \n", argv[0] );
printf("Example: %s 172.16.4.11 12345 \n", argv[0] );
exit(1);
}
return 0;
}
q2>>>>
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#ifdef RECVFROM_FULL
struct sockaddr_in remote_addr;
socklen_t remote_addr_length;
unsigned long nbo;
unsigned long hbo;
char *host_addr;
#endif
if( argc != 3 )
{
printf("usage -> prog-name server-address server-port \n");
printf("example -> %s 192.168.5.58 7 \n", argv[0] );
exit(1);
}
client_addr.sin_family = AF_INET;
client_addr.sin_addr.s_addr = htonl( INADDR_ANY ); // all interfaces
client_addr.sin_port = htons(0); // any free port
server_addr.sin_family = AF_INET;
n = inet_aton( argv[1], &(server_addr.sin_addr) );
if( n == 0 ) { perror("invalid-address"); exit(1); }
server_addr.sin_port = htons( atoi(argv[2]) );
n = 0;
#ifdef RECVFROM_FULL
printf("%s: Using recvfrom() call in full form \n", argv[0] );
remote_addr_length = sizeof(remote_addr);
n = recvfrom( sd, buffer,SIZE, MSG_PEEK,
(struct sockaddr *) &remote_addr,
&remote_addr_length );
if( n == -1 ) { perror("recvfrom-call-full"); exit(1); }
nbo = remote_addr.sin_addr.s_addr;
printf("rf-full: remote address in network byte order ");
printf("= %lX Hex \n", nbo );
hbo = ntohl(remote_addr.sin_addr.s_addr);
printf("rf-full: remote address in host byte order = %lX Hex \n",
hbo );
host_addr = inet_ntoa(remote_addr.sin_addr);
#ifdef RECVFROM_STRIPPED
printf("%s: Using recvfrom() call in stripped form\n", argv[0]);
#ifdef RECV
printf("%s: Using recv() call \n", argv[0]);
return 0;
}
q3>>>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>
int tempsockfd, n ;
socklen_t clientlength;
ssize_t i, j ;
char buffer[BUFFERSIZE];
struct sockaddr_in server_addr, client_addr;
if( argc != 1 )
{
printf("usage: %s \n", argv[0] );
exit(1);
}
server_addr.sin_family = AF_INET;
server_addr.sin_port = htons(SERVER_PORT);
n = bind( ser_sd,
(struct sockaddr *) & server_addr,
sizeof(server_addr) );
if( n == -1) { perror("bind-call"); exit(1); }
n = listen( ser_sd, 5 );
if( n == -1 ) { perror("listen-call"); exit(1); }
clientlength = sizeof(client_addr);
n = shutdown(tempsockfd,SHUT_RDWR);
if ( n == -1 ) { perror("shutdown"); exit(1); }
n = close(tempsockfd);
if( n == -1 ) { perror("close-tempsockfd"); exit(1); }
}
// close(ser_sd);
exit(0);
} // end of main
nc -t 192.168.78.139 50001
hi
hi
q4>>>>
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
server_addr.sin_family = AF_INET;
server_addr.sin_addr.s_addr = htonl(INADDR_ANY);
server_addr.sin_port = htons(SERVER_PORT);
clientlength = sizeof(client_addr);
while( 1 ) // endless loop
{
printf("%s: using UDP port-%u \n", argv[0], SERVER_PORT );
memset( buffer, '\0', BUFFERSIZE );
i = recvfrom( ser_sd, buffer, BUFFERSIZE,0,
(struct sockaddr *) &client_addr, &clientlength );
if( i == -1 ) perror("recvfrom-call");
close( ser_sd );
exit(0);
}
nc -u 192.168.78.139 50000
hi
hi