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

📄 socket.h

📁 介绍:MySQL是比较出名的数据库软件
💻 H
📖 第 1 页 / 共 2 页
字号:
/*      @(#)socket.h	6.23 7/18/94 - STREAMware TCP/IP  source        *//* * Copyrighted as an unpublished work. * (c) Copyright 1987-1994 Legent Corporation * All rights reserved. * * RESTRICTED RIGHTS * * These programs are supplied under a license.  They may be used, * disclosed, and/or copied only as permitted under such license * agreement.  Any copy must contain the above copyright notice and * this restricted rights notice.  Use, copying, and/or disclosure * of the programs is strictly prohibited unless otherwise provided * in the license agreement. * *//*      SCCS IDENTIFICATION        *//* * Copyright (c) 1985 Regents of the University of California. * All rights reserved. * * Redistribution and use in source and binary forms are permitted * provided that the above copyright notice and this paragraph are * duplicated in all such forms and that any documentation, * advertising materials, and other materials related to such * distribution and use acknowledge that the software was developed * by the University of California, Berkeley.  The name of the * University may not be used to endorse or promote products derived * from this software without specific prior written permission. * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. */#ifndef __sys_socket_h#define __sys_socket_h#if !defined(FD_SETSIZE)/* Pick up select stuff from standard system include */#include <sys/types.h>#endif/* socket.h	6.1	83/07/29	 *//* * 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_ORDREL	0x0200	/* give use orderly release */#define SO_IMASOCKET	0x0400	/* use socket semantics (affects bind) */#define SO_MGMT		0x0800	/* => it is used for mgmt. purposes */#define	SO_REUSEPORT	0x1000	/* allow local 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_PROTOTYPE	0x1009	/* get/set protocol type *//* * 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 *//* * An option specification consists of an opthdr, followed by the value of * the option.  An options buffer contains one or more options.  The len * field of opthdr specifies the length of the option value in bytes.  This * length must be a multiple of sizeof(long) (use OPTLEN macro). */struct opthdr {	long            level;	/* protocol level affected */	long            name;	/* option to modify */	long            len;	/* length of option value */};#define OPTLEN(x) ((((x) + sizeof(long) - 1) / sizeof(long)) * sizeof(long))#define OPTVAL(opt) ((char *)(opt + 1))#if defined(INKERNEL) || defined(_KERNEL) || defined(_INKERNEL)/* * the optdefault structure is used for internal tables of option default * values. */struct optdefault {	int             optname;/* the option */	char           *val;	/* ptr to default value */	int             len;	/* length of value */};/* * the opproc structure is used to build tables of options processing * functions for in_dooptions(). */struct opproc {	int             level;	/* options level this function handles */	int             (*func) ();	/* the function */};#endif/* * Address families. */#define	AF_UNSPEC	0	/* unspecified */#define	AF_UNIX		1	/* local to host (pipes, portals) */#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	/* 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_MAX          20/* * Structure used by kernel to store most addresses. */struct sockaddr {	u_short         sa_family;	/* address family */	char            sa_data[14];	/* up to 14 bytes of direct address */};/* * Structure used by kernel to pass protocol information in raw sockets. */struct sockproto {	unsigned short  sp_family;	/* address family */	unsigned short  sp_protocol;	/* protocol */};/* * Protocol families, same as address families for now. */#define	PF_UNSPEC	AF_UNSPEC#define	PF_UNIX		AF_UNIX#define	PF_INET		AF_INET#define	PF_IMPLINK	AF_IMPLINK#define	PF_PUP		AF_PUP#define	PF_CHAOS	AF_CHAOS#define	PF_NS		AF_NS#define	PF_NBS		AF_NBS#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#define PF_XTP          pseudo_AF_XTP   /* really just proto family, no AF */#define PF_MAX          AF_MAX/* * Maximum queue length specifiable by listen. */#define SOMAXCONN       5/* * Message header for recvmsg and sendmsg calls. * Used value-result for recmvsg, value only for sendmsg. */struct msghdr {	caddr_t         msg_name;	/* optional address */	u_int           msg_namelen;	/* size of address */	struct iovec   *msg_iov;	/* scatter/gather array */	u_int           msg_iovlen;	/* # elements msg_iov */	caddr_t         msg_control;	/* ancillary data, see below */	u_int           msg_controllen;	/* ancillary data buffer len */	int		msg_flags;	/* flags on received message */};#define msg_accrights		msg_control#define	msg_accrightslen	msg_controllen#define	MSG_OOB		0x1	/* process out-of-band data */#define	MSG_PEEK	0x2	/* peek at incoming message */#define	MSG_DONTROUTE	0x4	/* send without using routing tables */#define MSG_EOR         0x8     /* data completes record */ /*notused*/#define MSG_TRUNC       0x10    /* data discarded before delivery */#define MSG_CTRUNC      0x20    /* control data lost before delivery */#define MSG_WAITALL     0x40    /* wait for full request or error */ /*notused*/#define	MSG_MAXIOVLEN	16/* * Header for ancillary data objects in msg_control buffer. * Used for additional information with/about a datagram * not expressible by flags.  The format is a sequence * of message elements headed by cmsghdr structures. * In STREAMware, we shuffle the fields around a little from what * they were in net-2, so that they line up the same as an opthdr * which simplifies our socket implementation amazingly. *

⌨️ 快捷键说明

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