服务器端的socket如何判断客户端的IP地址?
如下代码可行否:
……
- C/C++ code
SOCKADDR mAddr;int mLen;Accept(*mClientSocket,mAddr,mLen);if( !strncmp(mAddr.sa_data,"192.168.10.11",mLen) ){ printf("和客户192.168.10.11连接");}else if( !strncmp(mAddr.sa_data,"192.168.10.12",mLen) ){ printf("和客户192.168.10.12连接");}
不会用SOCKADDR中的sa_data[14]啊,不知道这个数组里保存的信息具体格式是什么?
[解决办法]
- C/C++ code
SOCKADDR_IN clientAddr; int socketLen = sizeof(SOCKADDR_IN); m_pListenSocket->Accept(*pClient,(SOCKADDR*)&clientAddr, &socketLen); unsigned long m_lIP;m_lIP = clientAddr.sin_addr.S_un.S_addr;short m_nPort;m_nPort= clientAddr.sin_port;