connect(..)中有个sockaddr结构,存放有IP地址,如何提取出来,转变成字符串

pc2000 2003-08-02 10:45:21
VC++中sockaddr的定义是这样的:
struct sockaddr {
unsigned short sa_family;
char sa_data[14];
};

如果方便的话请分析一下这个结构,小弟初学,谢谢!
...全文
284 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
afc 2003-08-02
  • 打赏
  • 举报
回复
inet_ntoa

The 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.

Remarks
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.


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

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧