⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 socket.h

📁 eCos操作系统源码
💻 H
📖 第 1 页 / 共 2 页
字号:
//==========================================================================////      include/sys/socket.h////      ////==========================================================================//####BSDCOPYRIGHTBEGIN####//// -------------------------------------------//// Portions of this software may have been derived from OpenBSD or other sources,// and are covered by the appropriate copyright disclaimers included herein.//// -------------------------------------------////####BSDCOPYRIGHTEND####//==========================================================================//#####DESCRIPTIONBEGIN####//// Author(s):    gthomas// Contributors: gthomas// Date:         2000-01-10// Purpose:      // Description:  //              ////####DESCRIPTIONEND####////==========================================================================/*	$OpenBSD: socket.h,v 1.30 1999/12/08 06:50:24 itojun Exp $	*//*	$NetBSD: socket.h,v 1.14 1996/02/09 18:25:36 christos Exp $	*//* * Copyright (c) 1982, 1985, 1986, 1988, 1993, 1994 *	The Regents of the University of California.  All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright *    notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright *    notice, this list of conditions and the following disclaimer in the *    documentation and/or other materials provided with the distribution. * 3. All advertising materials mentioning features or use of this software *    must display the following acknowledgement: *	This product includes software developed by the University of *	California, Berkeley and its contributors. * 4. Neither the name of the University nor the names of its contributors *    may be used to endorse or promote products derived from this software *    without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * *	@(#)socket.h	8.4 (Berkeley) 2/21/94 */#ifndef _SYS_SOCKET_H_#define	_SYS_SOCKET_H_/* * Definitions related to sockets: types, address families, options. *//* * 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 */#define	SO_REUSEPORT	0x0200		/* allow local address & port reuse *//* * 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 */#define	SO_NETPROC	0x1020		/* multiplex; network processing *//* * Structure used for manipulating linger option. */struct	linger {	int	l_onoff;		/* option on/off */	int	l_linger;		/* linger time */};/* * Level number for (get/set)sockopt() to apply to socket itself. */#define	SOL_SOCKET	0xffff		/* options for socket level *//* * Address families. */#define	AF_UNSPEC	0		/* unspecified */#define	AF_LOCAL	1		/* local to host (pipes, portals) */#define	AF_UNIX		AF_LOCAL	/* backward compatibility */#define	AF_INET		2		/* internetwork: UDP, TCP, etc. */#define	AF_IMPLINK	3		/* arpanet imp addresses */#define	AF_PUP		4		/* pup protocols: e.g. BSP */#define	AF_CHAOS	5		/* mit CHAOS protocols */#define	AF_NS		6		/* XEROX NS protocols */#define	AF_ISO		7		/* ISO protocols */#define	AF_OSI		AF_ISO#define	AF_ECMA		8		/* european computer manufacturers */#define	AF_DATAKIT	9		/* datakit protocols */#define	AF_CCITT	10		/* CCITT protocols, X.25 etc */#define	AF_SNA		11		/* IBM SNA */#define AF_DECnet	12		/* DECnet */#define AF_DLI		13		/* DEC Direct data link interface */#define AF_LAT		14		/* LAT */#define	AF_HYLINK	15		/* NSC Hyperchannel */#define	AF_APPLETALK	16		/* Apple Talk */#define	AF_ROUTE	17		/* Internal Routing Protocol */#define	AF_LINK		18		/* Link layer interface */#define	pseudo_AF_XTP	19		/* eXpress Transfer Protocol (no AF) */#define	AF_COIP		20		/* connection-oriented IP, aka ST II */#define	AF_CNT		21		/* Computer Network Technology */#define pseudo_AF_RTIP	22		/* Help Identify RTIP packets */#define	AF_IPX		23		/* Novell Internet Protocol */#define	AF_INET6	24		/* IPv6 */#define pseudo_AF_PIP	25		/* Help Identify PIP packets */#define AF_ISDN		26		/* Integrated Services Digital Network*/#define AF_E164		AF_ISDN		/* CCITT E.164 recommendation */#define AF_NATM		27		/* native ATM access */#define	AF_ENCAP	28#define	AF_SIP		29		/* Simple Internet Protocol */#define AF_KEY		30#define	AF_MAX		31/* * Structure used by kernel to store most * addresses. */struct sockaddr {	u_int8_t    sa_len;		/* total length */	sa_family_t sa_family;		/* address family */	char	    sa_data[14];	/* actually longer; address value */};/* * Sockaddr type which can hold any sockaddr type available * in the system. * * Note: __ss_{len,family} is defined in RFC2553.  During RFC2553 discussion * the field name went back and forth between ss_len and __ss_len, * and RFC2553 specifies it to be __ss_len.  openbsd picked ss_len. * For maximum portability, userland programmer would need to * (1) make the code never touch ss_len portion (cast it into sockaddr and * touch sa_len), or (2) add "-Dss_len=__ss_len" into CFLAGS to unify all * occurences (including header file) to __ss_len. */struct sockaddr_storage {	u_int8_t    ss_len;		/* total length */	sa_family_t ss_family;		/* address family */	u_char	    __ss_pad1[6];	/* align to quad */	u_int64_t   __ss_pad2;		/* force alignment for stupid compilers */	u_char      __ss_pad3[240];	/* pad to a total of 256 bytes */};/* * Structure used by kernel to pass protocol * information in raw sockets. */struct sockproto {	u_short	sp_family;		/* address family */	u_short	sp_protocol;		/* protocol */};/* * Protocol families, same as address families for now. */#define	PF_UNSPEC	AF_UNSPEC#define	PF_LOCAL	AF_LOCAL#define	PF_UNIX		PF_LOCAL	/* backward compatibility */#define	PF_INET		AF_INET#define	PF_INET6	AF_INET6#define	PF_IMPLINK	AF_IMPLINK#define	PF_PUP		AF_PUP#define	PF_CHAOS	AF_CHAOS#define	PF_NS		AF_NS#define	PF_ISO		AF_ISO#define	PF_OSI		AF_ISO#define	PF_ECMA		AF_ECMA#define	PF_DATAKIT	AF_DATAKIT#define	PF_CCITT	AF_CCITT#define	PF_SNA		AF_SNA#define PF_DECnet	AF_DECnet#define PF_DLI		AF_DLI#define PF_LAT		AF_LAT#define	PF_HYLINK	AF_HYLINK#define	PF_APPLETALK	AF_APPLETALK#define	PF_ROUTE	AF_ROUTE#define	PF_LINK		AF_LINK

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -