socklocal.h
上传用户:xqtpzdz
上传日期:2022-05-21
资源大小:1764k
文件大小:3k
源码类别:

xml/soap/webservice

开发平台:

Visual C++

  1. #ifdef HAVE_BUILTIN_H
  2. #  include <builtin.h>
  3. #endif
  4. #ifdef _WIN32
  5. #include <windows.h>
  6. #include <io.h>
  7. #else
  8. #ifdef __osf__
  9. typedef int socklen_t;
  10. #endif
  11. EXTERN_C_BEGIN
  12. #ifdef HAVE_STRING_H
  13. #  include <string.h>
  14. #else
  15. #  ifdef HAVE_MEMORY_H
  16. #    include <memory.h>
  17. #  endif
  18. #endif
  19. #ifdef _ALL_SOURCE
  20. #  define _BSD 44  // AIX
  21. #  include <sys/select.h>
  22. #  ifndef _POSIX_SOURCE
  23. #    define _POSIX_SOURCE
  24. #  endif
  25. #  undef _ALL_SOURCE
  26. #endif
  27. #include <sys/types.h>
  28. #ifdef HAVE_SYS_WAIT
  29. #  include <sys/wait.h>
  30. #endif
  31. #ifndef _WIN32
  32. #include <sys/signal.h>
  33. #include <netinet/in.h>
  34. #endif
  35. #ifndef SA_RESTART
  36. #  define SA_RESTART 0
  37. #endif
  38. typedef int SOCKET;
  39. #define INVALID_SOCKET (-1)
  40. EXTERN_C_END
  41. #if defined (__sun__) && !defined (__svr4__) && defined (_S_LIBGXX)
  42. // libg++-2.6.x has stopped providing prototypes for the following
  43. // for sunos 4.1.x
  44. extern "C" {
  45.   int socketpair (int domain, int typ, int protocol, int* sockpair);
  46.   int socket (int domain, int typ, int protocol);
  47.   int bind   (SOCKET sock, void* addr, int addrlen);
  48.   int connect (SOCKET sock, void* addr, int addrlen);
  49.   int listen (SOCKET sock, int num);
  50.   int accept (SOCKET sock, void* addr, int* addrlen);
  51.   int recv (SOCKET sock, void* buf, int buflen, int msgflag);
  52.   int recvfrom (SOCKET sock, void* buf, int buflen, int msgflag,
  53. void* addr, int* addrlen);
  54.   int send (SOCKET sock, void* buf, int buflen, int msgflag);
  55.   int sendto (SOCKET sock, void* buf, int buflen, int msgflag,
  56.       void* addr, int addrlen);
  57.   int recvmsg (SOCKET sock, struct msghdr* msg, int msgflag);
  58.   int sendmsg (SOCKET sock, struct msghdr* msg, int msgflag);
  59.   int select (SOCKET sock, void* rd, void* wr, void* ex, struct timeval* tv);
  60.   int getsockopt (SOCKET sock, int level, int option, void* val, int* vallen);
  61.   int setsockopt (SOCKET sock, int level, int option, void* val, int vallen);
  62.   int getsockname (SOCKET sock, void* addr, int* addrlen);
  63.   int getpeername (SOCKET sock, void* addr, int* addrlen);
  64. }
  65. #endif
  66. //extern "C" int shutdown (int, int); // they have forgotten this
  67. // <arpa/inet.h> does not have a prototype for inet_addr () and gethostname()
  68. extern "C" unsigned long inet_addr (const char*);
  69. // arpa/in.h does not provide a protype for the following
  70. extern "C" char* inet_ntoa (in_addr ina);
  71. #if !defined (__linux__) && !defined(_solaris_)
  72.   extern "C" int gethostname (char* hostname, int len);
  73.   extern char* SYS_SIGLIST [];
  74. #endif
  75. //typedef RETSIGTYPE (*funcptr) (...);
  76. #endif /* !_WIN32 */