2012-08-15 193 views
0

我有一個C++服務器在Linux上使用Mongoose監聽端口8080上的http請求。我使用的端口8080,因爲我有一個Apache服務器已經使用端口80.服務器監聽localhost:8080 Apache是​​否仍然可以監聽端口80?

我有我的C++服務器監聽http請求的原因是,我可以接收Facebook發送的http GET來獲取用戶的Facebook信息。對於Facebook服務器端身份驗證我重定向到本地主機:8080。

我正確地從Facebook發送信息,但現在Apache不提供我的HTML到客戶端網頁(如果我只重定向到本地主機,它工作正常)。

是否有可能使這兩個工作?客戶端是否仍然試圖從80端口獲取index.html,還是希望8080現在可以發送?

+0

默認情況下,web客戶端(瀏覽器或其他客戶端)總是嘗試從端口80獲取。必須明確告知從其他端口獲取數據。如果客戶端沒有連接到普通的Web服務器,那麼重定向可能會有一些問題。 – 2012-08-15 06:00:30

+0

這個問題很可能被作爲後續的[/編輯]給你現有的問題,[C++ Linux服務器獲取Facebook HTTP驗證消息](http://facebook.stackoverflow.com/questions/11946136/c-linux -server-得到Facebook的-HTTP認證的消息)。如果這些小細節適合現有的細節,請考慮不要爲您的項目的每個小細節都提出新的問題。謝謝。 – CBroe 2012-08-15 13:24:51

+0

你有沒有這個權利?怎麼樣?? – 2015-01-08 11:41:13

回答

0

80是否等於8080?顯然沒有。所以這兩個端口可能會被不同的應用程序監聽。 嘗試使用Wireshark(數據包分析器)檢查收入請求。

+0

我收到wireshark並檢出了正在發送的數據包。它看起來只是試圖在端口8080上請求。我不知道我該如何解決這個問題。我應該發送一個小的HTML文件,將客戶端重定向回80端口,以便Apache可以恢復發送必要的信息? – 2012-08-15 03:56:25

+0

如果您的瀏覽器默認連接到端口8080,那真的很奇怪。它必須首先連接到80端口,並且只有在某種重定向存在的情況下它纔可以嘗試其他端口。按'tcp.port == 80 ||過濾數據包tcp.port == 8080'並仔細檢查請求。如果沒有請求到端口80,請描述您如何嘗試詳細連接。 – 2012-08-15 06:31:39