您好!
如何在接受客户端连接之前获取客户端的 IP 地址?
表示在调用 sl_Accept()之前如何获取连接的目标 IP 地址/客户端 IP 地址。
有人能支持我吗?
我尝试过以下代码、但在'client_IP'中、我将始终获得0值:-
//此任务将永远等待传入的数据
sl_socket_fd_zero (&rxSet);
sl_socket_fd_set (connHandlr->SD、&rxSet);
//使用相关参数调用选择功能
状态= sl_Select ((connHandlr->SD + 1)、&rxSet、NULL、NULL、&timeVal);
if (status == true)
{
tmpCounter++;
}
其他
{
TmpCounter = 0;
}
/*will call sl_task() to
获取事件(触发器/计时器)*/
SL_Task (空);
/*如果触发事件到达(或者数据正在等待但没有事件)
*转到接收数据*/
if ((g_triggerModeEventArrived == true)||(tmpCounter >=10))
{
//清除事件指示
G_triggerModeEventArrived = false;
TmpCounter = 0;
client_ip = connHandlr->clientAdd.sin addr.s_addr.s_addr;//更新当前客户端 IP 地址
返回值= m_AcceptConnection (connHandlr);
}
返回返回值;
当我接受连接时、我将获得其 IP 地址、但我需要它、然后我将接受连接:-
//套接字被标记,调用接受
connHandlr->NewSd = sl_accept (connHandlr->SD、(SockAddr_t*)&Addr1、(Sockklen_t*)&AddrSize);
client_IP = Addr1.sin addr.s_addr;//更新当前客户端 IP 地址
此致、
Mahendra Rana