Advertisement
Guest User

client

a guest
Jan 16th, 2014
310
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.48 KB | None | 0 0
  1. #include <sys/socket.h>
  2. #include <sys/types.h>
  3. #include <netinet/in.h>
  4. #include <netdb.h>
  5. #include <stdio.h>
  6. #include <string.h>
  7. #include <stdlib.h>
  8. #include <unistd.h>
  9. #include <errno.h>
  10. #include <arpa/inet.h>
  11.  
  12. #define SEQ
  13.  
  14. #if defined(SEQ)
  15. #include <sys/un.h>
  16. #endif
  17.  
  18. int main(int argc, char *argv[])
  19. {
  20.     int sockfd = 0, n = 0;
  21.     char recvBuff[1024];
  22.     struct sockaddr_in serv_addr;
  23.  
  24. #if defined(SEQ)
  25.     struct sockaddr_un remote;
  26.     if ((sockfd = socket(AF_UNIX, SOCK_SEQPACKET, 0)) == -1)
  27.     {
  28.         perror("socket");
  29.         exit(1);
  30.     }
  31.  
  32.     printf("Trying to connect...\n");
  33.  
  34.     remote.sun_family = AF_UNIX;
  35.     strcpy(remote.sun_path, argv[1]);
  36.     int len = strlen(remote.sun_path) + sizeof(remote.sun_family);
  37.     if (connect(sockfd, (struct sockaddr *)&remote, len) == -1)
  38.     {
  39.         perror("connect");
  40.         exit(1);
  41.     }
  42. #else
  43.     if(argc != 2)
  44.     {
  45.         printf("\n Usage: %s <ip of server> \n",argv[0]);
  46.         return 1;
  47.     }
  48.  
  49.     memset(recvBuff, '0',sizeof(recvBuff));
  50.     if((sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0)
  51.     {
  52.         printf("\n Error : Could not create socket \n");
  53.         return 1;
  54.     }
  55.  
  56.     memset(&serv_addr, '0', sizeof(serv_addr));
  57.  
  58.     serv_addr.sin_family = AF_INET;
  59.     serv_addr.sin_port = htons(5000);
  60.  
  61.     if(inet_pton(AF_INET, argv[1], &serv_addr.sin_addr)<=0)
  62.     {
  63.         printf("\n inet_pton error occured\n");
  64.         return 1;
  65.     }
  66.  
  67.     if( connect(sockfd, (struct sockaddr *)&serv_addr, sizeof(serv_addr)) < 0)
  68.     {
  69.        printf("\n Error : Connect Failed \n");
  70.        return 1;
  71.     }
  72. #endif
  73.  
  74. #if defined(SEQ)
  75.     n = read(sockfd, recvBuff, sizeof(recvBuff)-1);
  76.     recvBuff[n] = 0;
  77.     if(fputs(recvBuff, stdout) == EOF)
  78.     {
  79.         printf("\n Error : Fputs error\n");
  80.     }
  81. #else
  82.     while ( (n = read(sockfd, recvBuff, sizeof(recvBuff)-1)) > 0)
  83.     {
  84.         recvBuff[n] = 0;
  85.         if(fputs(recvBuff, stdout) == EOF)
  86.         {
  87.             printf("\n Error : Fputs error\n");
  88.         }
  89.     }
  90. #endif
  91.  
  92.     // write data until we block
  93.     char buf[256];
  94.     int dataWritten = 0;
  95.     int retval;
  96.     while(1)
  97.     {
  98.         printf("Writing...\n");
  99.         retval = write(sockfd, buf, sizeof(buf));
  100.         if(retval > 0)
  101.         {
  102.             dataWritten += retval;
  103.             printf("dataWritten %d\n", dataWritten);
  104.         }
  105.  
  106.         if(retval <= 0)
  107.         {
  108.             break;
  109.         }
  110.     }
  111.  
  112.     printf("dataWritten %d\n", dataWritten);
  113.  
  114.     if(n < 0)
  115.     {
  116.         printf("\n Read error \n");
  117.     }
  118.  
  119.     return 0;
  120. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement