22 March, 2015

NWP-Practical-6

                                                                                     Practical-6

AIM: WAP to send date and time by server to client by using TCP socket.
Theory: RHS
#include “sys/socket.h> “
#include “netinet/in.h”
#include “arpa/inet.h”
#include “stdio.h”
#include “stdlib.h”
#include “unistd.h”
#include “errno.h”
#include “string.h”
#include “sys/types.h”
#include “time.h”
int main(int argc, char *argv[])
{
    int listenfd = 0, connfd = 0;
    struct sockaddr_in serv_addr;
    char sendBuff[1025];
    time_t ticks;
    listenfd = socket(AF_INET, SOCK_STREAM, 0);
    memset(&serv_addr, '0', sizeof(serv_addr));
    memset(sendBuff, '0', sizeof(sendBuff));
    serv_addr.sin_family = AF_INET;
    serv_addr.sin_addr.s_addr = htonl(INADDR_ANY);
    serv_addr.sin_port = htons(5000);
    bind(listenfd, (struct sockaddr*)&serv_addr, sizeof(serv_addr));
    listen(listenfd, 10);
    while(1)
    {
        connfd = accept(listenfd, (struct sockaddr*)NULL, NULL);
        ticks = time(NULL);
        snprintf(sendBuff, sizeof(sendBuff), "%.24s\r\n", ctime(&ticks));
        write(connfd, sendBuff, strlen(sendBuff));
        close(connfd);
        sleep(1);
     }
}



TCP Client Socket
#include “sys/socket.h> “
#include “netinet/in.h”
#include “arpa/inet.h”
#include “stdio.h”
#include “stdlib.h”
#include “unistd.h”
#include “errno.h”
#include “string.h”
#include “sys/types.h”
#include “time.h”
int main(int argc, char *argv[])
{
    int sockfd = 0, n = 0;
    char recvBuff[1024];
    struct sockaddr_in serv_addr;
    if(argc != 2)
    {
        printf("\n Usage: %s \n",argv[0]);
        return 1;
    }
    memset(recvBuff, '0',sizeof(recvBuff));
    if((sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0)
    {
        printf("\n Error : Could not create socket \n");
        return 1;
    }
   memset(&serv_addr, '0', sizeof(serv_addr));
    serv_addr.sin_family = AF_INET;
    serv_addr.sin_port = htons(5000);
    if(inet_pton(AF_INET, argv[1], &serv_addr.sin_addr)<=0)
    {
        printf("\n inet_pton error occured\n");
        return 1;
    }
    if( connect(sockfd, (struct sockaddr *)&serv_addr, sizeof(serv_addr)) < 0)
    {
       printf("\n Error : Connect Failed \n");
       return 1;
    }
    while ( (n = read(sockfd, recvBuff, sizeof(recvBuff)-1)) > 0)
    {
        recvBuff[n] = 0;
        if(fputs(recvBuff, stdout) == EOF)
        {
            printf("\n Error : Fputs error\n");
        }
    }
    if(n < 0)
    {
       printf("\n Read error \n");
    }
    return 0;
}

Output: LHS
Compile and Run
Firstly Compile and Run the server file on Terminal 1.
Now Compile and Run the client file in Terminal 2, with server IP address.
Now Run client on Terminal 2
$ ./a.out 127.0.0.1 (For same M/C)
Output:
Sun Dec  18 22:22:14 2011on the its socket descriptor.

NWP-Practical-7

                                                                      Practical#7
AIM: Program to convert lower-case character into upper-case character using UDP Socket.
Theory: RHS:
/************* UDP SERVER CODE *******************/

#include “stdio.h”
#include “sys/socket.h”
#include “netinet/in.h”
#include “string.h”
#include “stdlib.h”
int main()
{
  int udpSocket, nBytes;
  char buffer[1024];
  struct sockaddr_in serverAddr, clientAddr;
  struct sockaddr_storage serverStorage;
  socklen_t addr_size, client_addr_size;
  int i;

  /*Create UDP socket*/
  udpSocket = socket(PF_INET, SOCK_DGRAM, 0);

  /*Configure settings in address struct*/
  serverAddr.sin_family = AF_INET;
  serverAddr.sin_port = htons(7891);
  serverAddr.sin_addr.s_addr = inet_addr("127.0.0.1");
  memset(serverAddr.sin_zero, '\0', sizeof serverAddr.sin_zero);  

  /*Bind socket with address struct*/
  bind(udpSocket, (struct sockaddr *) &serverAddr, sizeof(serverAddr));

  /*Initialize size variable to be used later on*/
  addr_size = sizeof serverStorage;

  while(1){
/* Try to receive any incoming UDP datagram. Address and port of    requesting client will be stored on serverStorage variable */
    nBytes = recvfrom(udpSocket,buffer,1024,0,(struct sockaddr *)&serverStorage, &addr_size);

    /*Convert message received to uppercase*/
    for(i=0;i
      buffer[i] = toupper(buffer[i]);

    /*Send uppercase message back to client, using serverStorage as the address*/
    sendto(udpSocket,buffer,nBytes,0,(struct sockaddr *)&serverStorage,addr_size);
  }

  return 0;
}


/************* UDP CLIENT CODE *******************/
 
//#include “stdio.h” //#include “sys/socket.h” //#include “netinet/in.h” //#include “string.h” //#include “stdlib.h”
int main(){
  int clientSocket, portNum, nBytes;
  char buffer[1024];
  struct sockaddr_in serverAddr;
  socklen_t addr_size;
 
  /*Create UDP socket*/
  clientSocket = socket(PF_INET, SOCK_DGRAM, 0);
 
  /*Configure settings in address struct*/
  serverAddr.sin_family = AF_INET;
  serverAddr.sin_port = htons(7891);
  serverAddr.sin_addr.s_addr = inet_addr("127.0.0.1");
  memset(serverAddr.sin_zero, '\0', sizeof serverAddr.sin_zero);  
 
  /*Initialize size variable to be used later on*/
  addr_size = sizeof serverAddr;
 
  while(1){
    printf("Type a sentence to send to server:\n");
    fgets(buffer,1024,stdin);
    printf("You typed: %s",buffer);
    nBytes = strlen(buffer) + 1;
    
    /*Send message to server*/
    sendto(clientSocket,buffer,nBytes,0,(struct sockaddr *)&serverAddr,addr_size);
 
    /*Receive message from server*/
                nBytes = recvfrom(clientSocket,buffer,1024,0,NULL, NULL);
    printf("Received from server: %s\n",buffer);
 
  }
  return 0;
}

Output:LHS
Compile & Run
Firstly compile and run server socket on Terminal1.
Secondly compile and run client socket on Terminal2.
Now type string on client socket on Terminal2.

Server will send back a string uppercase. 


NWP-Practical-5

                                                            Practical#5
AIM: WAP for file handling by using the concept of fscanf() and fprintf().
Theory: RHS
#include "stdio.h"
#include "io.h"
#include "stdlib.h"
#include "conio.h"

int main()
{
  FILE *fp;
  char s[80];
  int t;
  clrscr();
  if((fp=fopen("test", "w")) == NULL) {
    printf("Cannot open file.\n");
    exit(1);
  }

  printf("Enter a string and a number: ");
  fscanf(stdin, "%s%d", s, &t); /* read from keyboard */

  fprintf(fp, "%s %d", s, t); /* write to file */
  fclose(fp);

  if((fp=fopen("test","r")) == NULL) {
    printf("Cannot open file.\n");
    exit(1);
  }

  fscanf(fp, "%s%d", s, &t); /* read from file */
  fprintf(stdout, "%s %d", s, t); /* print on screen */
  getch();
  return 0;
}

Output: LHS