我有一些代碼與我的本地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 –