sms_tcpip.c
上传用户:mei_mei897
上传日期:2007-01-05
资源大小:82k
文件大小:3k
源码类别:

手机短信编程

开发平台:

Unix_Linux

  1. /* -------------------------------------------------------------------- */
  2. /* SMS Client, send messages to mobile phones and pagers */
  3. /* */
  4. /* sms_tcpip.c */
  5. /* */
  6. /*  Copyright (C) 1997,1998 Angelo Masci */
  7. /* */
  8. /*  This library is free software; you can redistribute it and/or */
  9. /*  modify it under the terms of the GNU Library General Public */
  10. /*  License as published by the Free Software Foundation; either */
  11. /*  version 2 of the License, or (at your option) any later version. */
  12. /* */
  13. /*  This library is distributed in the hope that it will be useful, */
  14. /*  but WITHOUT ANY WARRANTY; without even the implied warranty of */
  15. /*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU */
  16. /*  Library General Public License for more details. */
  17. /* */
  18. /*  You should have received a copy of the GNU Library General Public */
  19. /*  License along with this library; if not, write to the Free */
  20. /*  Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
  21. /* */
  22. /*  You can contact the author at this e-mail address: */
  23. /* */
  24. /*  angelo@styx.demon.co.uk */
  25. /* */
  26. /* -------------------------------------------------------------------- */
  27. /* $Id$
  28.    -------------------------------------------------------------------- */
  29. #include <stdio.h>
  30. #include <string.h>
  31. #include <unistd.h>
  32. #include <netdb.h>
  33. #include <sys/types.h>
  34. #include <sys/socket.h>
  35. #include <netinet/in.h>
  36. #if defined(SOLARIS) && !defined(SOLARIS_2_4)
  37. #include <strings.h>
  38. #endif
  39. #include "common.h"
  40. #include "sms_tcpip.h"
  41. #include "logfile.h"
  42. #include "sms_error.h"
  43. /* -------------------------------------------------------------------- */
  44. /* -------------------------------------------------------------------- */
  45. int TCPIP_connect(char *host, int port)
  46. {
  47. int sockfd;
  48. struct hostent *he;
  49. struct sockaddr_in their_addr;  /* connector's address information */
  50. if ((he=gethostbyname(host)) == NULL) /* get the host info  */ 
  51. {
  52. lprintf(LOG_ERROR, "gethostbyname() failedn");
  53.    return -1;
  54. }
  55. if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1) 
  56. {
  57. lprintf(LOG_ERROR, "socket() failedn");
  58. return -1;
  59. }
  60. their_addr.sin_family = AF_INET; /* host byte order  */
  61. their_addr.sin_port = htons(port);  /* short, network byte order  */
  62. their_addr.sin_addr = *((struct in_addr *)he->h_addr);
  63. bzero(&(their_addr.sin_zero[0]), 8); /* zero the rest of the struct  */
  64. if (connect(sockfd, (struct sockaddr *)&their_addr, sizeof(struct sockaddr)) == -1) 
  65. {
  66. lprintf(LOG_ERROR, "connect() failedn");
  67. return -1;
  68. }
  69. return sockfd;
  70. }
  71. /* -------------------------------------------------------------------- */
  72. /* -------------------------------------------------------------------- */
  73. int TCPIP_disconnect(int fd)
  74. { return close(fd);
  75. }