编辑:重复这个问题,如果我正在侦听端口54321,并且侦听端口12345的本地进程连接到我,创建套接字s,我如何找到它正在侦听的端口?
sockaddr_in addr;
int len = sizeof(addr);
getpeername(s, (sockaddr*)&addr, &len);
cout << string(inet_ntoa(addr.sin_addr)) << ":" << ntohs(addr.sin_port) << endl;输出不应该是127.0.0.1:12345吗?取而代之的是,我得到了127.0.0.1:62305或其他任意的端口号。这是我的错误,还是应该是这样的?
发布于 2009-09-17 02:12:47
如果%s已连接,则应获取127.0.0.1:12345。你确定它是连接的吗?
您需要检查getpeername()的返回码,以确保没有错误。
https://stackoverflow.com/questions/1436374
复制相似问题