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 *
吗?
谢谢!