2012-09-19 178 views
-1

我需要編寫一個與Web服務器通信的java應用程序。 我知道如何做到這一點,使用PHP,但恐怕它不會在這一個。Java與web服務通信

這是我的情況。 我有多個客戶端,當他們中的一個向服務器發送特定的消息(到目前爲止,PHP上沒有問題)時,我希望它向所有其他連接的客戶端發送特定的消息。 問題是,我很難在PHP中找到關於服務器套接字的任何信息,這使我相信這不是實現這一點的正確方法。我使用付費託管服務(x10premium)來託管我的服務器,所以我正在考慮使用此服務器,但是,我不確定甚至可以使用PHP。 目前,我讓每個客戶定期檢查服務器,如果他收到任何其他客戶的消息,但我不喜歡這種解決方案... 我希望有人可以指向我的權利方向。我不太瞭解Ruby和其他用來做類似事情的語言,但如果有必要,我很樂意學習它。

在此先感謝

編輯: 忘了提,服務器(目前PHP)也將與一個MySQL表進行通信。如果它很重要。

+0

PHP不是一種實時腳本語言....其次,誰是客戶端? PHP或Java – dbf

+0

那麼你的問題是什麼?如何在Java中做到這一點?如果可以在Java中使用?如果有辦法在PHP中做到這一點? – clentfort

+0

這在Java中當然是可行的(從我的角度來看並不難),但是沒有更多細節,除此之外很難說出你想知道的內容。 – Zoe

回答

1

這是PHP套接字服務器/客戶端的一個很好的例子: http://tech.navarr.me/2010/07/how-to-create-a-socket-server-in-php.html

你可以做到這一點,就像用JAVA,但請記住,PHP不支持多線程和多所以,如果10個客戶端同時連接到您的服務器,你會逐一處理它們,所以最終1將不得不等待其他9完成 - 一切,數據庫和連接開銷。

如果你用JAVA或者Python來做例子,你可以在單獨的線程中處理每個請求,這樣DB可以同時處理網絡通信開銷。

Python已經構建了套接字服務器組件,並且使用了易於使用的mysql組件,這將使它成爲一個輕鬆實現的組件,甚至不需要理解線程。

對於Python的socket服務器在這裏看到:

http://docs.python.org/library/socketserver.html

基本上你只定義將爲每個新的客戶端連接要執行的功能和服務器告訴serve_forever() - 直到它死了,它會做你想要什麼。

+0

我在共享主機(x10hosting premium)中創建套接字時遇到問題。它們允許我運行python,但它無法創建套接字。 –

+0

這並不奇怪 - 沒有主機會允許您創建套接字或打開端口。獲得VPS。 – ddinchev