macsockets.h
上传用户:dangjiwu
上传日期:2013-07-19
资源大小:42019k
文件大小:7k
- /* ***** BEGIN LICENSE BLOCK *****
- * Source last modified: $Id: macsockets.h,v 1.3.36.1 2004/07/09 02:06:52 hubbe Exp $
- *
- * Portions Copyright (c) 1995-2004 RealNetworks, Inc. All Rights Reserved.
- *
- * The contents of this file, and the files included with this file,
- * are subject to the current version of the RealNetworks Public
- * Source License (the "RPSL") available at
- * http://www.helixcommunity.org/content/rpsl unless you have licensed
- * the file under the current version of the RealNetworks Community
- * Source License (the "RCSL") available at
- * http://www.helixcommunity.org/content/rcsl, in which case the RCSL
- * will apply. You may also obtain the license terms directly from
- * RealNetworks. You may not use this file except in compliance with
- * the RPSL or, if you have a valid RCSL with RealNetworks applicable
- * to this file, the RCSL. Please see the applicable RPSL or RCSL for
- * the rights, obligations and limitations governing use of the
- * contents of the file.
- *
- * Alternatively, the contents of this file may be used under the
- * terms of the GNU General Public License Version 2 or later (the
- * "GPL") in which case the provisions of the GPL are applicable
- * instead of those above. If you wish to allow use of your version of
- * this file only under the terms of the GPL, and not to allow others
- * to use your version of this file under the terms of either the RPSL
- * or RCSL, indicate your decision by deleting the provisions above
- * and replace them with the notice and other provisions required by
- * the GPL. If you do not delete the provisions above, a recipient may
- * use your version of this file under the terms of any one of the
- * RPSL, the RCSL or the GPL.
- *
- * This file is part of the Helix DNA Technology. RealNetworks is the
- * developer of the Original Code and owns the copyrights in the
- * portions it created.
- *
- * This file, and the files included with this file, is distributed
- * and made available on an 'AS IS' basis, WITHOUT WARRANTY OF ANY
- * KIND, EITHER EXPRESS OR IMPLIED, AND REALNETWORKS HEREBY DISCLAIMS
- * ALL SUCH WARRANTIES, INCLUDING WITHOUT LIMITATION, ANY WARRANTIES
- * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, QUIET
- * ENJOYMENT OR NON-INFRINGEMENT.
- *
- * Technology Compatibility Kit Test Suite(s) Location:
- * http://www.helixcommunity.org/content/tck
- *
- * Contributor(s):
- *
- * ***** END LICENSE BLOCK ***** */
- #if __MWERKS__
- #pragma once
- #endif
- #ifndef __MACSOCKETS__
- #define __MACSOCKETS__
- #ifdef __cplusplus
- extern "C" {
- #endif /* __cplusplus */
- typedef unsigned char u_char;
- typedef unsigned short u_short;
- #ifndef _MAC_MACHO
- #ifndef mode_t
- typedef unsigned long mode_t;
- #endif
- #endif
- #ifdef OTUNIXERRORS
- #undef OTUNIXERRORS
- #endif
- #define OTUNIXERRORS 1
- #ifndef _STDIO
- #include <stdio.h>
- #endif
- #ifndef _MAC_MACHO
- #ifndef _STAT
- #include <stat.h>
- #endif
- #endif
- #ifndef _UTIME
- #include <utime.h>
- #endif
- #ifndef _MAC_MACHO
- #ifndef _UTSNAME
- #include <utsname.h>
- #endif
- #endif
- #ifndef _HXTYPES_H_
- #include "hxtypes.h"
- #endif
- /*
- // Not defined in OpenTransport.h
- #define EMFILE ELASTERRNO + 1
- #define ENFILE ELASTERRNO + 2
- #define ENOENT ELASTERRNO + 3
- #define ENOSPC ELASTERRNO + 4
- #define EROFS ELASTERRNO + 5
- #define ESPIPE ELASTERRNO + 6
- */
- /* Definitions related to sockets: types, address families, options */
- #define ntohl(x) (x)
- #define ntohs(x) (x)
- #define htonl(x) (x)
- #define htons(x) (x)
- /*
- * Types
- */
- #define SOCK_STREAM 1 /* stream socket */
- #define SOCK_DGRAM 2 /* datagram socket */
- #define SOCK_RAW 3 /* raw-protocol interface */
- #define SOCK_RDM 4 /* reliably-delivered message */
- #define SOCK_SEQPACKET 5 /* sequenced packet stream */
- /*
- * Option flags per-socket.
- */
- #define SO_DEBUG 0x0001 /* turn on debugging info recording */
- #define SO_ACCEPTCONN 0x0002 /* socket has had listen() */
- #define SO_REUSEADDR 0x0004 /* allow local address reuse */
- #define SO_KEEPALIVE 0x0008 /* keep connections alive */
- #define SO_DONTROUTE 0x0010 /* just use interface addresses */
- #define SO_BROADCAST 0x0020 /* permit sending of broadcast msgs */
- #define SO_USELOOPBACK 0x0040 /* bypass hardware when possible */
- #define SO_LINGER 0x0080 /* linger on close if data present */
- #define SO_OOBINLINE 0x0100 /* leave received OOB data in line */
- /*
- * Additional options, not kept in so_options.
- */
- #define SO_SNDBUF 0x1001 /* send buffer size */
- #define SO_RCVBUF 0x1002 /* receive buffer size */
- #define SO_SNDLOWAT 0x1003 /* send low-water mark */
- #define SO_RCVLOWAT 0x1004 /* receive low-water mark */
- #define SO_SNDTIMEO 0x1005 /* send timeout */
- #define SO_RCVTIMEO 0x1006 /* receive timeout */
- #define SO_ERROR 0x1007 /* get error status and clear */
- #define SO_TYPE 0x1008 /* get socket type */
- /*
- * Structure used for manipulating linger option.
- */
- struct linger {
- int l_onoff; /* option on/off */
- int l_linger; /* linger time */
- };
- /*
- * Structures returned by network data base library. All addresses are
- * supplied in host order, and returned in network order (suitable for
- * use in system calls).
- */
- #if 0
- struct hostent {
- char *h_name; /* official name of host */
- char **h_aliases; /* alias list */
- int h_addrtype; /* host address type */
- int h_length; /* length of address */
- char **h_addr_list; /* list of addresses from name server */
- #define h_addr h_addr_list[0] /* address, for backward compatiblity */
- };
- #else
- struct hostent {
- unsigned long *h_addr;
- char *h_name; /* official name of host */
- };
- #endif
- #define PF_UNSPEC AF_UNSPEC /* unspecified */
- #define PF_UNIX AF_UNIX /* local to host (pipes, portals) */
- #define PF_INET AF_INET /* internetwork: UDP, TCP, etc. */
- #define PF_CTB AF_CTB /* Apple Comm Toolbox (not yet supported) */
- #define PF_FILE AF_FILE /* Normal File I/O (used internally) */
- #define PF_PPC AF_PPC /* PPC Toolbox */
- #define PF_PAP AF_PAP /* Printer Access Protocol (client only) */
- #define PF_APPLETALK AF_APPLETALK /* Apple Talk */
- /*
- * Level number for (get/set)sockopt() to apply to socket itself.
- */
- #define SOL_SOCKET 0xffff /* options for socket level */
- #define INADDR_ANY (unsigned long)0x00000000
- struct sockaddr
- {
- u_char sa_len; /* total length */
- u_char sa_family; /* address family */
- char sa_data[14]; /* actually longer; address value */ /* Flawfinder: ignore */
- };
- /*
- * Internet address (a structure for historical reasons)
- */
- struct in_addr {
- unsigned long s_addr;
- };
- /*
- * Socket address, internet style.
- */
- struct sockaddr_in {
- unsigned char sin_len;
- unsigned char sin_family;
- unsigned short sin_port;
- struct in_addr sin_addr;
- char sin_zero[8]; /* Flawfinder: ignore */
- };
- extern char *inet_ntoa(struct in_addr in);
- extern unsigned long inet_addr(const char* cp);
- extern struct hostent *gethostbyname(char *name);
- extern INT16 gethostname(char *name, INT16 namelen);
- struct hostent *gethostbyaddr(char *addr, int len, int type);
- #ifdef __cplusplus
- }
- #endif /* __cplusplus */
- #endif /* __MACSOCKETS__ */