怎么获取绑定的socket的地址的端口号

kaixin_chewei_001 2008-10-29 03:15:21
udpsocket=socket(AF_INET,SOCK_DGRAM,0);
addrSoc.sin_addr.S_un.S_addr=htonl(INADDR_ANY);
addrSoc.sin_family=AF_INET;
addrSoc.sin_port=htons(0);
binderr=bind(udpsocket,(SOCKADDR*)&addrSoc,sizeof(SOCKADDR));
我这样获取
SOCKADDR_IN sockAddr;
int iLen=sizeof(sockAddr);
getsockname(udpsocket,(struct sockaddr *)&sockAddr,&iLen);
char *ip=inet_ntoa(sockAddr.sin_addr);
int port= sockAddr.sin_port;

m_VIP.Format("%s:%d",ip,port);
m_VIP 显示为:204.204.204.204:52428

怎么获取呀?
...全文
1336 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
dch4890164 2008-10-29
  • 打赏
  • 举报
回复
呵呵
kaixin_chewei_001 2008-10-29
  • 打赏
  • 举报
回复
....来者又分.

刚调试才发现..socket=0...
调试的时候发现自己写的函数..忘了调用..

NNDMLGBD~~~晕死.
kaixin_chewei_001 2008-10-29
  • 打赏
  • 举报
回复
我也不明白你们的意思.

我的做法就这样呀

我的IP地址不是那个. getsockname 返回错误.查询10038

直接对结构体读inet什么的.那些都是0

谁分析分析
laolaoliu2002 2008-10-29
  • 打赏
  • 举报
回复
DispAddress(struct sockaddr_in* AddrIn )
{
if(AddrIn->sin_family!=AF_INET)//////////////////////////////////////
{
cout<<"Not an Internet socket."<<endl;
return;
}//////////////////////////////////////////////////////////////////
cout<<"address is:<<inet_ntoa(addr->sin_addr)<<" : "<< ntohs(addr->sin_port)<<endl;
}
qt_freelancer 2008-10-29
  • 打赏
  • 举报
回复
52428 不就是端口号码? 不是很明白你的意思
阿呆_ 2008-10-29
  • 打赏
  • 举报
回复
int port= ntohs(sockAddr.sin_port);
laolaoliu2002 2008-10-29
  • 打赏
  • 举报
回复
Socket必须经过bind或已经建立连接
laolaoliu2002 2008-10-29
  • 打赏
  • 举报
回复
getsockname

18,361

社区成员

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

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