www.pudn.com > tdi_fw.rar > sock.h, change:2009-04-28,size:2435b


// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil -*- (for GNU Emacs) 
// 
// $Id: sock.h,v 1.1 2009/04/28 12:53:28 tanwen Exp $ 
 
#ifndef _sock_h_ 
#define _sock_h_ 
 
/*--- some declarations from winsock.h ---*/ 
 
/* 
 * Basic system type definitions, taken from the BSD file sys/types.h. 
 */ 
typedef unsigned char   u_char; 
typedef unsigned short  u_short; 
typedef unsigned int    u_int; 
typedef unsigned long   u_long; 
 
// some socket functions 
 
u_long		ntohl(u_long netlong); 
u_short		ntohs(u_short netshort); 
 
u_long		htonl(u_long netlong); 
u_short		htons(u_short netshort); 
 
/* 
 * Protocols 
 */ 
#define IPPROTO_IP              0               /* dummy for IP */ 
#define IPPROTO_ICMP            1               /* control message protocol */ 
#define IPPROTO_TCP             6               /* tcp */ 
#define IPPROTO_UDP             17              /* user datagram protocol */ 
 
/* 
 * 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 */ 
}; 
 
/* 
 * Internet address (old style... should be updated) 
 */ 
struct in_addr { 
        union { 
                struct { u_char s_b1,s_b2,s_b3,s_b4; } S_un_b; 
                struct { u_short s_w1,s_w2; } S_un_w; 
                u_long S_addr; 
        } S_un; 
#define s_addr  S_un.S_addr 
                                /* can be used for most tcp & ip code */ 
#define s_host  S_un.S_un_b.s_b2 
                                /* host on imp */ 
#define s_net   S_un.S_un_b.s_b1 
                                /* network */ 
#define s_imp   S_un.S_un_w.s_w2 
                                /* imp */ 
#define s_impno S_un.S_un_b.s_b4 
                                /* imp # */ 
#define s_lh    S_un.S_un_b.s_b3 
                                /* logical host */ 
}; 
 
/* 
 * Socket address, internet style. 
 */ 
struct sockaddr_in { 
        short   sin_family; 
        u_short sin_port; 
        struct  in_addr sin_addr; 
        char    sin_zero[8]; 
}; 
 
/* 
 * Address families. 
 */ 
#define AF_INET         2               /* internetwork: UDP, TCP, etc. */ 
 
#define INADDR_ANY              (u_long)0x00000000 
#define INADDR_LOOPBACK         0x7f000001 
#define INADDR_BROADCAST        (u_long)0xffffffff 
#define INADDR_NONE             0xffffffff 
 
#endif