Advertisement
Guest User

Untitled

a guest
Apr 30th, 2020
426
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.96 KB | None | 0 0
  1. /***************************************************************************/
  2. #include <sys/socket.h>
  3. #include <sys/types.h>
  4. #include <netinet/in.h>
  5. #include <netdb.h>
  6. #include <stdio.h>
  7. #include <string.h>
  8. #include <stdlib.h>
  9. #include <unistd.h>
  10. #include <errno.h>
  11. #include <arpa/inet.h>
  12.  
  13. #include "lib_errors.h"
  14. /**e************************************************************************/
  15. int lib_tcp_socket;
  16. /***************************************************************************/
  17. static unsigned int lib_tcp_port;
  18. /**h************************************************************************/
  19. extern int lib_tcp_setPort(char *port)
  20. {
  21.     lib_tcp_port=atoi(port);
  22. }
  23. /**h************************************************************************/
  24. extern int lib_tcp_connect(char *adress)
  25. {
  26.     struct sockaddr_in serv_addr;
  27.  
  28.     lib_tcp_socket = 0;
  29.  
  30.     if((lib_tcp_socket = socket(AF_INET, SOCK_STREAM, 0)) < 0)
  31.     {
  32. //        printf("\n Error : Could not create socket \n");
  33. //        return 3;
  34.          lib_errors_error(103,errno);
  35.     }
  36.  
  37.     memset(&serv_addr, '0', sizeof(serv_addr));
  38.  
  39.     serv_addr.sin_family = AF_INET;
  40.     serv_addr.sin_port = htons(lib_tcp_port);
  41.  
  42.     if(inet_pton(AF_INET, adress, &serv_addr.sin_addr)<=0)
  43.     {
  44.         struct hostent *he;
  45.         if ((he=gethostbyname(adress)) == NULL)  /* get the host info */
  46.         {
  47. //            printf("\n gethostbyname error occured\n");
  48. //            return 2;
  49.             lib_errors_error(102,errno);
  50.         }
  51.         serv_addr.sin_addr = *((struct in_addr *)he->h_addr);
  52.     }
  53.  
  54.     if( connect(lib_tcp_socket, (struct sockaddr *)&serv_addr, sizeof(serv_addr)) < 0)
  55.     {
  56. //       printf("\n Error : Connect Failed \n");
  57. //       return 1;
  58.        lib_errors_error(101,errno);
  59.     }
  60.  
  61.     return 0;
  62. }
  63. /**h************************************************************************/
  64. extern int lib_tcp_read(char *recvBuff, int sizeBuff)
  65. {
  66.     int n = read(lib_tcp_socket, recvBuff, sizeBuff);
  67. //    if (n<0) lib_errors_error(104,errno);
  68.  
  69.     return n;
  70. }
  71. /**h************************************************************************/
  72. extern int lib_tcp_send(char *sendBuff, int sizeBuff)
  73. {
  74.     int n = send(lib_tcp_socket , sendBuff , sizeBuff , 0);
  75.     if (n<0) lib_errors_error(105,errno);
  76.     if (n!=sizeBuff) lib_errors_error(106,sizeBuff-n);
  77.  
  78.     return n;
  79. }
  80. /**h************************************************************************/
  81. extern int lib_tcp_readN(char *recvBuff, int sizeBuff)
  82. {
  83.     int indata_len=0;
  84.     for( ; ; )
  85.     {
  86.          if (indata_len>=sizeBuff)  return 0;
  87.  
  88.          int res=lib_tcp_read(&recvBuff[indata_len], 1);
  89.          if (res<0) lib_errors_error(107,errno);
  90.  
  91.          indata_len +=res;
  92.     }
  93. }
  94. /**h************************************************************************/
  95. extern int lib_tcp_close()
  96. {
  97.     return close(lib_tcp_socket);
  98. }
  99. /***************************************************************************/
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement