我有一些代码与我的本地IP一起工作,但是当我尝试收听非本地IP(来自同一网络)时,此代码不起作用。显然,我的“选择”条款不再适用。套接字监听器到非本地IP不工作
while(IsReading() && IsConnected())
{
FD_ZERO(&lReader);
FD_SET(GetConnection(), &lReader);
int lHasData = select(GetConnection()+1, &lReader, NULL, NULL, NULL);
if (lHasData > 0)
{
//Accept and read socket...
}
}
正如我所说的,这是可以正常使用了我自己的IP,但是当我试图从我newtwork听其他IP /端口(IT公司的Asterisk服务器,我想听听它recive的回应对我的行为,并呼吁),如果没有数据到达,“选择”将保持不变。
我的非本地IP代码有问题吗?
感谢提前
您是否配置了路由器,以便它允许服务器正在监听的端口上的连接? –
@JimmyGustafsson我直接从连接到同一个交换机的机器上听IP。理论上,Asterisk正在应答端口30000(我配置它)。我可以连接telnet,我有回应,但我不能听。 –
新信息:我做了一个测试whith没有选择和听动作,只需连接,发送,然后recv,它完美的作品。也许......有可能听外部端口?或者你只是可以收到信息?谢谢! @JimmyGustafsson –