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

📄 in.h

📁 著名操作系统Plan 9的第三版的部分核心源代码。现在很难找到了。Plan 9是bell实验室开发的Unix后继者。
💻 H
字号:
#ifndef __netinet_in__#define __netinet_in__#ifdef __cplusplusextern "C" {#endif/* * Copyright (c) 1982, 1986, 1990 Regents of the University of California. * All rights reserved. * * Redistribution is only permitted until one year after the first shipment * of 4.4BSD by the Regents.  Otherwise, redistribution and use in source and * binary forms are permitted provided that: (1) source distributions retain * this entire copyright notice and comment, and (2) distributions including * binaries display the following acknowledgement:  This product includes * software developed by the University of California, Berkeley and its * contributors'' in the documentation or other materials provided with the * distribution and in all advertising materials mentioning features or use * of this software.  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 AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. * *	@(#)in.h	7.10 (Berkeley) 6/28/90 plus MULTICAST 1.1 *//* * Constants and structures defined by the internet system, * Per RFC 790, September 1981. *//* * Protocols */#define	IPPROTO_IP		0		/* dummy for IP */#define	IPPROTO_ICMP		1		/* control message protocol */#define	IPPROTO_GGP		3		/* gateway^2 (deprecated) */#define	IPPROTO_TCP		6		/* tcp */#define	IPPROTO_EGP		8		/* exterior gateway protocol */#define	IPPROTO_PUP		12		/* pup */#define	IPPROTO_UDP		17		/* user datagram protocol */#define	IPPROTO_IDP		22		/* xns idp */#define	IPPROTO_TP		29 		/* tp-4 w/ class negotiation */#define	IPPROTO_EON		80		/* ISO cnlp */#define	IPPROTO_RAW		255		/* raw IP packet */#define	IPPROTO_MAX		256/* * Local port number conventions: * Ports < IPPORT_RESERVED are reserved for * privileged processes (e.g. root). * Ports > IPPORT_USERRESERVED are reserved * for servers, not necessarily privileged. */#define	IPPORT_RESERVED		1024#define	IPPORT_USERRESERVED	5000/* * Internet address (a structure for historical reasons) */struct in_addr {	unsigned long s_addr;};/* * Definitions of bits in internet address integers. * On subnets, the decomposition of addresses to host and net parts * is done according to subnet mask, not the masks here. */#define	IN_CLASSA(i)		(((long)(i) & 0x80000000) == 0)#define	IN_CLASSA_NET		0xff000000#define	IN_CLASSA_NSHIFT	24#define	IN_CLASSA_HOST		0x00ffffff#define	IN_CLASSA_MAX		128#define	IN_CLASSB(i)		(((long)(i) & 0xc0000000) == 0x80000000)#define	IN_CLASSB_NET		0xffff0000#define	IN_CLASSB_NSHIFT	16#define	IN_CLASSB_HOST		0x0000ffff#define	IN_CLASSB_MAX		65536#define	IN_CLASSC(i)		(((long)(i) & 0xe0000000) == 0xc0000000)#define	IN_CLASSC_NET		0xffffff00#define	IN_CLASSC_NSHIFT	8#define	IN_CLASSC_HOST		0x000000ff#define	IN_CLASSD(i)		(((long)(i) & 0xf0000000) == 0xe0000000)#define	IN_MULTICAST(i)		IN_CLASSD(i)#define	IN_EXPERIMENTAL(i)	(((long)(i) & 0xe0000000) == 0xe0000000)#define	IN_BADCLASS(i)		(((long)(i) & 0xf0000000) == 0xf0000000)#define	INADDR_ANY		(unsigned long)0x00000000#define	INADDR_BROADCAST	(unsigned long)0xffffffff	/* must be masked */#define	IN_LOOPBACKNET		127			/* official! *//* * Socket address, internet style. */struct sockaddr_in {	short	sin_family;	unsigned short	sin_port;	struct	in_addr sin_addr;	char	sin_zero[8];};/* * Structure used to describe IP options. * Used to store options internally, to pass them to a process, * or to restore options retrieved earlier. * The ip_dst is used for the first-hop gateway when using a source route * (this gets put into the header proper). */struct ip_opts {	struct	in_addr ip_dst;		/* first hop, 0 w/o src rt */	char	ip_opts[40];		/* actually variable in size */};/* * Options for use with [gs]etsockopt at the IP level. * First word of comment is data type; bool is stored in int. */#define	IP_OPTIONS	1	/* buf/ip_opts; set/get IP per-packet options */#define	IP_HDRINCL	7	/* int; header is included with data (raw) */#define	IP_TOS		8	/* int; IP type of service and precedence */#define	IP_TTL		9	/* int; IP time to live */extern unsigned long	ntohl(unsigned long x);extern unsigned short	ntohs(unsigned short x);extern unsigned long	htonl(unsigned long x);extern unsigned short	htons(unsigned short x);extern unsigned long	inet_addr(char*);extern char*		inet_ntoa(struct in_addr);extern unsigned long	nptohl(void*);#ifdef __cplusplus}#endif#endif /* __netinet_in__ */

⌨️ 快捷键说明

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