请问当截获了WINSOCK的connect调用后如何分离出主机地址和端口?

解决方案 »

  1.   

    主机端口和地址是与socket对应的,所以得到了socket就可以使用
    getsockname得到本地端口、地址,getpeername得到对端端口,地址。socket是connect的第一个参数,所以在截获此调用的时候可以从stack中找到这个值。
      

  2.   

    我说的是这个函数int WSAAPI connect(
        SOCKET s,
        const struct sockaddr FAR * name,
        int namelen
        );当截获后SOCKADDR_IN里面怎么找出将要连接的主机地址和端口?
      

  3.   

    将name转换撑sockaddr_in的指针。
    (sockaddr_in *)name->sin_addr是主机地址,可用楼上所说inet_ntoa函数得到字串形式。
    (sockaddr_in *)name->sin_port是端口地址,注意转换字节顺序。ntohs(...)
      

  4.   

    楼主你是不是指对方的端口和地址吧。
    用getpeername()。
      

  5.   

    CString strIp;
    UNIT iPort;
    pSocket->GetPeerName(strIp, iPort);