使用winsock1.1编程,SOCKADDR地址转换问题?

ataorui 2004-09-06 08:19:49
服务器端使用accept函数接受客户端连接请求,如果根据返回的SOCKADDR结构得到客户端的ip地址?
...全文
107 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
yspear 2004-09-07
  • 打赏
  • 举报
回复
sockaddr_in clientaddr;

CString str;

//把clientaddr强制转换成(sockaddr*)clientaddr

str.Format("%s",inet_ntoa(clientaddr.sin_addr));
microyzy 2004-09-07
  • 打赏
  • 举报
回复
这是msdn的说明:

getpeername
The Windows Sockets getpeername function retrieves the name of the peer to which a socket is connected.

int getpeername(
SOCKET s,
struct sockaddr FAR *name,
int FAR *namelen
);
Parameters
s
[in] Descriptor identifying a connected socket.
name
[out] The structure that receives the name of the peer.
namelen
[in, out] Pointer to the size of the name structure.
Return Values
If no error occurs, getpeername returns zero. Otherwise, a value of SOCKET_ERROR is returned, and a specific error code can be retrieved by calling WSAGetLastError.

microyzy 2004-09-07
  • 打赏
  • 举报
回复
getsockname和getpeername函数分别返回本地端以及远程一端的socket地址信息
  • 打赏
  • 举报
回复
《VC++技术内幕5.0版》中有一个封装好的类,可以进行任意转换。去找找吧
oyljerry 2004-09-07
  • 打赏
  • 举报
回复
把accept中得到的sockaddr用inet_ntoa(addr.sin_addr))强制类型转换就可以得到了
ataorui 2004-09-06
  • 打赏
  • 举报
回复
inet_ntoa()好像不行吧。
或者你再写详细点,如何转?
无聊客 2004-09-06
  • 打赏
  • 举报
回复
inet_ntoa()

18,356

社区成员

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

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