如何获得Socket连接客户端的IP地址?
我想获得连接客户端的IP地址!但总没有值!CSocket sockSrvr;
sockSrvr.Create(800);
sockSrvr.Listen();
CSocket sockRecv;
sockSrvr.Accept(sockRecv);CString str;
unsigned int port;
pSocket->GetPeerName(str,port);
AfxMessageBox(str);
为什么str没有值??????如有好的其它的方法,请给出??代码要求全!!!!!
我想获得连接客户端的IP地址!但总没有值!CSocket sockSrvr;
sockSrvr.Create(800);
sockSrvr.Listen();
CSocket sockRecv;
sockSrvr.Accept(sockRecv);CString str;
unsigned int port;
pSocket->GetPeerName(str,port);
AfxMessageBox(str);
为什么str没有值??????如有好的其它的方法,请给出??代码要求全!!!!!
WSADATA wsa;SOCKET listenFD;char Buff[1024];int ret; WSAStartup(MAKEWORD(2,2),&wsa); listenFD = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP); struct sockaddr_in server; server.sin_family = AF_INET;server.sin_port = htons(53764);server.sin_addr.s_addr=ADDR_ANY;ret=bind(listenFD,(sockaddr *)&server,sizeof(server));ret=listen(listenFD,2);int iAddrSize = sizeof(server);SOCKET clientFD=accept(listenFD,(sockaddr *)&server,&iAddrSize);客户端的IP就在server结构体里面了
sockSrvr.Accept(sockRecv);
CString str;
unsigned int port;
//pSocket->GetPeerName(str,port);
sockRecv.GetPeerName(str,port);
AfxMessageBox(str);
int getpeername(SOCKET s, struct sockaddr FAR * name, int FAR * namelen );
s为套接字
name为函数调用后获得的端地址值
namelen为缓冲区的大小。