connect()我使用以下调用连接到远程主机:
result = connect(sockfd, (struct sockaddr *)&address, len);
其中地址代表sockaddr_in结构,为了执行sockaddr *的目的而转换为connect()。但是,使用库注入,我可以通过定义自己的连接函数来覆盖连接调用:
int connect (int fd, __CONST_SOCKADDR_ARG addr, socklen_t len)
{
// My code in between
}
但是,我无法将第二个参数(__CONST_SOCAKADDR_ARG)转换为sockaddr_in指针或sockaddr就此而言。__CONST_SOCKADDR_ARG宏扩展为const struct sockaddr *. 以下行:
struct sockaddr_in* providedIPv4AddressStructure = (struct sockaddr_in*) addr;
让我得到以下错误指示:
error: cannot convert to a pointer type
而且当然:
warning: initialization from incompatible pointer type [enabled by default]
有人对如何正确投射__CONST_SOCAKADDR_ARG到有任何提示sockaddr_in *吗?
谢谢!