socket 获得socket对应的本地ip和端口解决办法

socket 获得socket对应的本地ip和端口
我已经获得了一个socket 
然而我怎么获得socket对应的本地ip和端口?

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

PS:我做一个网络截包工具,detour拦截send,recv函数,
可以获得他的socket,然而怎么根据这个socket获得这个socket对应的本地的ip和端口呢?
求解释...
------解决方案--------------------
首先,你应该是想获得对方的主机的IP和端口吧!
对于TCP,服务器端详看accept函数的使用,第二个参数就是sockaddr,转换为sockaddr_in,解析结构体就能得到IP和端口了。对于客户端,肯定知道对方的IP和端口,是吧!
对于UDP,首先说一点,UDP是无连接的。你在这里也许是叙述错误,但这个必须清晰。对于服务器详看recvfrom函数。客户端,当然不需要知道!!
------解决方案--------------------
对于UDP,服务端看recvfrom,客户端不必知道。
------解决方案--------------------
1 楼解释很清楚。