VC++中sockaddr的定义是这样的:
struct sockaddr {
   unsigned short sa_family;
   char sa_data[14];
};如果方便的话请分析一下这个结构,小弟初学,谢谢!

解决方案 »

  1.   

    inet_ntoaThe inet_ntoa function converts an (Ipv4) Internet network address into a string in Internet standard dotted format.
    char* FAR inet_ntoa(
      struct   in_addr in
    );Parameters
    in 
    [in] Pointer to an in_addr structure that represents an Internet host address. 
    Return Values
    If no error occurs, inet_ntoa returns a character pointer to a static buffer containing the text address in standard ".'' notation. Otherwise, it returns NULL.Res
    The inet_ntoa function takes an Internet address structure specified by the in parameter and returns an ASCII string representing the address in ".'' (dot) notation as in "a.b.c.d.'' The string returned by inet_ntoa resides in memory that is allocated by Windows Sockets. The application should not make any assumptions about the way in which the memory is allocated. The data is guaranteed to be valid until the next Windows Sockets function call within the same thread—but no longer. Therefore, the data should be copied before another Windows Sockets call is made.Requirements
    Client: Included in Windows XP, Windows 2000 Professional, Windows NT Workstation, Windows Me, Windows 98, Windows 95.
    Server: Included in Windows .NET Server 2003, Windows 2000 Server, Windows NT Server.
    Header: Declared in Winsock2.h.
    Library: Use Ws2_32.lib.
      

  2.   

    sockaddr 类型是用来保存socket信息的: 
    struct sockaddr { 
      unsigned short sa_family; /* 地址族, AF_xxx */ 
       char sa_data[14]; /* 14 字节的协议地址 */ 
    }; 
    sa_family一般为AF_INET;sa_data则包含该socket的IP地址和端口号。