socket 获得socket对应的本地ip和端口

nash01 2013-06-17 09:53:15
我已经获得了一个socket
然而我怎么获得socket对应的本地ip和端口?

getsockname,只是支持tcp连接,
如果我的这个socket 对应的udp连接,怎么获得呢?

PS:我做一个网络截包工具,detour拦截send,recv函数,
可以获得他的socket,然而怎么根据这个socket获得这个socket对应的本地的ip和端口呢?
求解释...
...全文
5527 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
janchin 2014-07-03
  • 打赏
  • 举报
回复
很好奇如何拦截的?能交流交流吗?
lijianli9 2013-06-18
  • 打赏
  • 举报
回复
1 楼解释很清楚。
nash01 2013-06-18
  • 打赏
  • 举报
回复
getsockname 是对tcp连接而言。套接字socket必须是已连接套接字描述符.
nash01 2013-06-18
  • 打赏
  • 举报
回复
解决了, 1.用getsockname获得本地ip和port 2.用getpeername获得对端ip和port 要在连接保持的时候调用这两个函数, 如果连接已经释放,那么调用会失败.
Luo_Bryant 2013-06-17
  • 打赏
  • 举报
回复
对于UDP,服务端看recvfrom,客户端不必知道。
Marcelxx 2013-06-17
  • 打赏
  • 举报
回复
首先,你应该是想获得对方的主机的IP和端口吧! 对于TCP,服务器端详看accept函数的使用,第二个参数就是sockaddr,转换为sockaddr_in,解析结构体就能得到IP和端口了。对于客户端,肯定知道对方的IP和端口,是吧! 对于UDP,首先说一点,UDP是无连接的。你在这里也许是叙述错误,但这个必须清晰。对于服务器详看recvfrom函数。客户端,当然不需要知道!!

18,362

社区成员

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

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