macsockets.h
上传用户:zhongxx05
上传日期:2007-06-06
资源大小:33641k
文件大小:6k
源码类别:

Symbian

开发平台:

C/C++

  1. /* ***** BEGIN LICENSE BLOCK ***** 
  2.  * Version: RCSL 1.0/RPSL 1.0 
  3.  *  
  4.  * Portions Copyright (c) 1995-2002 RealNetworks, Inc. All Rights Reserved. 
  5.  *      
  6.  * The contents of this file, and the files included with this file, are 
  7.  * subject to the current version of the RealNetworks Public Source License 
  8.  * Version 1.0 (the "RPSL") available at 
  9.  * http://www.helixcommunity.org/content/rpsl unless you have licensed 
  10.  * the file under the RealNetworks Community Source License Version 1.0 
  11.  * (the "RCSL") available at http://www.helixcommunity.org/content/rcsl, 
  12.  * in which case the RCSL will apply. You may also obtain the license terms 
  13.  * directly from RealNetworks.  You may not use this file except in 
  14.  * compliance with the RPSL or, if you have a valid RCSL with RealNetworks 
  15.  * applicable to this file, the RCSL.  Please see the applicable RPSL or 
  16.  * RCSL for the rights, obligations and limitations governing use of the 
  17.  * contents of the file.  
  18.  *  
  19.  * This file is part of the Helix DNA Technology. RealNetworks is the 
  20.  * developer of the Original Code and owns the copyrights in the portions 
  21.  * it created. 
  22.  *  
  23.  * This file, and the files included with this file, is distributed and made 
  24.  * available on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 
  25.  * EXPRESS OR IMPLIED, AND REALNETWORKS HEREBY DISCLAIMS ALL SUCH WARRANTIES, 
  26.  * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS 
  27.  * FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 
  28.  * 
  29.  * Technology Compatibility Kit Test Suite(s) Location: 
  30.  *    http://www.helixcommunity.org/content/tck 
  31.  * 
  32.  * Contributor(s): 
  33.  *  
  34.  * ***** END LICENSE BLOCK ***** */ 
  35. #if __MWERKS__
  36. #pragma once
  37. #endif
  38. #ifndef __MACSOCKETS__
  39. #define __MACSOCKETS__
  40. #ifdef __cplusplus
  41. extern "C" {
  42. #endif  /* __cplusplus */
  43. typedef unsigned char u_char;
  44. typedef unsigned short u_short;
  45. #ifndef _MAC_MACHO
  46. #ifndef mode_t
  47. typedef unsigned long mode_t;
  48. #endif
  49. #endif
  50. #ifdef OTUNIXERRORS
  51. #undef OTUNIXERRORS
  52. #endif
  53. #define OTUNIXERRORS 1
  54. #ifndef _STDIO
  55. #include <stdio.h>
  56. #endif
  57. #ifndef _MAC_MACHO
  58. #ifndef _STAT
  59. #include <stat.h>
  60. #endif
  61. #endif
  62. #ifndef _UTIME
  63. #include <utime.h>
  64. #endif
  65. #ifndef _MAC_MACHO
  66. #ifndef _UTSNAME
  67. #include <utsname.h>
  68. #endif
  69. #endif
  70. #ifndef _HXTYPES_H_
  71. #include "hxtypes.h"
  72. #endif
  73. /*
  74. // Not defined in OpenTransport.h
  75. #define EMFILE ELASTERRNO + 1
  76. #define ENFILE ELASTERRNO + 2
  77. #define ENOENT ELASTERRNO + 3
  78. #define ENOSPC ELASTERRNO + 4
  79. #define EROFS  ELASTERRNO + 5
  80. #define ESPIPE  ELASTERRNO + 6
  81. */
  82. /* Definitions related to sockets: types, address families, options */
  83. #define ntohl(x) (x)
  84. #define ntohs(x) (x)
  85. #define htonl(x) (x)
  86. #define htons(x) (x)
  87. /*
  88.  * Types
  89.  */
  90. #define SOCK_STREAM 1 /* stream socket */
  91. #define SOCK_DGRAM 2 /* datagram socket */
  92. #define SOCK_RAW 3 /* raw-protocol interface */
  93. #define SOCK_RDM 4 /* reliably-delivered message */
  94. #define SOCK_SEQPACKET 5 /* sequenced packet stream */
  95. /*
  96.  * Option flags per-socket.
  97.  */
  98. #define SO_DEBUG 0x0001 /* turn on debugging info recording */
  99. #define SO_ACCEPTCONN 0x0002 /* socket has had listen() */
  100. #define SO_REUSEADDR 0x0004 /* allow local address reuse */
  101. #define SO_KEEPALIVE 0x0008 /* keep connections alive */
  102. #define SO_DONTROUTE 0x0010 /* just use interface addresses */
  103. #define SO_BROADCAST 0x0020 /* permit sending of broadcast msgs */
  104. #define SO_USELOOPBACK 0x0040 /* bypass hardware when possible */
  105. #define SO_LINGER 0x0080 /* linger on close if data present */
  106. #define SO_OOBINLINE 0x0100 /* leave received OOB data in line */
  107. /*
  108.  * Additional options, not kept in so_options.
  109.  */
  110. #define SO_SNDBUF 0x1001 /* send buffer size */
  111. #define SO_RCVBUF 0x1002 /* receive buffer size */
  112. #define SO_SNDLOWAT 0x1003 /* send low-water mark */
  113. #define SO_RCVLOWAT 0x1004 /* receive low-water mark */
  114. #define SO_SNDTIMEO 0x1005 /* send timeout */
  115. #define SO_RCVTIMEO 0x1006 /* receive timeout */
  116. #define SO_ERROR 0x1007 /* get error status and clear */
  117. #define SO_TYPE 0x1008 /* get socket type */
  118. /*
  119.  * Structure used for manipulating linger option.
  120.  */
  121. struct linger {
  122. int l_onoff; /* option on/off */
  123. int l_linger; /* linger time */
  124. };
  125. /*
  126.  * Structures returned by network data base library.  All addresses are
  127.  * supplied in host order, and returned in network order (suitable for
  128.  * use in system calls).
  129.  */
  130. #if 0
  131. struct hostent {
  132. char *h_name; /* official name of host */
  133. char **h_aliases; /* alias list */
  134. int h_addrtype; /* host address type */
  135. int h_length; /* length of address */
  136. char **h_addr_list; /* list of addresses from name server */
  137. #define h_addr h_addr_list[0] /* address, for backward compatiblity */
  138. };
  139. #else
  140. struct hostent {
  141. unsigned long *h_addr;
  142. char *h_name; /* official name of host */
  143. };
  144. #endif
  145. #define PF_UNSPEC AF_UNSPEC /* unspecified  */
  146. #define PF_UNIX AF_UNIX /* local to host (pipes, portals)  */
  147. #define PF_INET AF_INET /* internetwork: UDP, TCP, etc.  */
  148. #define PF_CTB AF_CTB /* Apple Comm Toolbox (not yet supported) */
  149. #define PF_FILE AF_FILE /* Normal File I/O (used internally) */
  150. #define PF_PPC AF_PPC /* PPC Toolbox */
  151. #define PF_PAP AF_PAP /* Printer Access Protocol (client only) */
  152. #define PF_APPLETALK AF_APPLETALK /* Apple Talk  */
  153. /*
  154.  * Level number for (get/set)sockopt() to apply to socket itself.
  155.  */
  156. #define SOL_SOCKET 0xffff /* options for socket level */
  157. #define INADDR_ANY  (unsigned long)0x00000000
  158. struct sockaddr 
  159. {
  160. u_char sa_len; /* total length */
  161. u_char sa_family; /* address family */
  162. char sa_data[14]; /* actually longer; address value */ /* Flawfinder: ignore */
  163. };
  164. /*
  165.  * Internet address (a structure for historical reasons)
  166.  */
  167. struct in_addr {
  168. unsigned long s_addr;
  169. };
  170. /*
  171.  * Socket address, internet style.
  172.  */
  173. struct sockaddr_in {
  174. unsigned char sin_len;
  175. unsigned char sin_family;
  176. unsigned short sin_port;
  177. struct in_addr sin_addr;
  178. char sin_zero[8]; /* Flawfinder: ignore */
  179. };
  180. extern char  *inet_ntoa(struct in_addr in);
  181. extern unsigned long inet_addr(const char* cp);
  182. extern struct  hostent *gethostbyname(char *name);
  183. extern INT16  gethostname(char *name, INT16 namelen);
  184. struct hostent  *gethostbyaddr(char *addr, int len, int type);
  185. #ifdef __cplusplus
  186. }
  187. #endif  /* __cplusplus */
  188. #endif  /* __MACSOCKETS__ */