2012-01-16 70 views
2

我目前正在努力嘗試用Java創建一個非常基本的骨骼即時通訊工具。即時通訊軟件,Java基礎項目

我在哪裏開始有點不知所措,想知道這裏有人可以推薦一個起點嗎?我應該讀什麼?初學者/中級程序員嘗試實現這一點最簡單的方法是什麼?

目前,我希望它能夠做的是將文本發送到另一臺機器。我到目前爲止對java中的任何網絡都不熟悉。我會使用服務器還是直接連接兩臺機器?

任何人在這個問題上的指針/方向或建議將是非常有益的!

回答

2

那麼,我正在關注你的第二個問題。

如果您正在爲您的局域網構建此程序,並且您打算使用套接字編程,則需要查找機器的確切IP地址。如果你不知道IP地址(我的意思是如果你不希望程序在運行之前知道IP地址),那麼你可以ping本地IP地址,直到找到一些對等點。

某些p2p應用程序使用服務器作爲ip匹配器。這意味着服務器具有IP地址表,這使得所有用戶使用這些服務器發送/接收數據。但如果你剛開始與這個項目聯網,我認爲不要使用服務器。

最後,你可以看看我自己的項目。這是一個簡單的並行文件準備程序,裏面有一個聊天模塊。它是用C#開發的。它需要無線ad hoc網絡來運行。鏈接:http://code.google.com/p/parallel-docs/

+1

輪詢本地IP地址聽起來不是一個好主意。另外,IM程序很可能會*需要服務器才能連接這兩臺機器。 – Jivings 2012-01-16 03:09:06

+1

我也認爲輪詢不是最好的主意,但它是解決問題的一種方法。但是,對於初學者項目,我認爲它可以使用。要做的第一件事就是編寫2個Java程序,比如receiver.java和sender.java,並測試消息是否被正確接收和發送。之後,它可以進一步發展,並使用客戶端服務器或P2P模式 – aacanakin 2012-01-16 03:22:03

+0

這是我一直在尋找的起點!我想這樣做,但起初看起來非常有壓倒性,不知道從哪裏開始,我可以嘗試一下你在這裏提到的內容,看看我如何繼續。謝謝你的回覆,我真的很感激! – Eogcloud 2012-01-16 03:33:02

3

首先查看Socket programming的官方資源,撰寫客戶/服務器對的文章應該爲您提供創建即時通訊所需知道的內容。

0

我不認爲這種類型的項目是永遠不會成爲一個初學者項目。我絕對不會讓你感到沮喪,我想你應該這樣做。我總是對這樣的東西感到厭倦,但我會查找並提出問題,通常最終會學到一些東西。我的建議不管程序有多簡單,從一些類圖開始,如果沒有別的只是在跳入代碼之前組織起來。例如,你知道你需要一個用戶賬戶對象,並且你知道你需要該對象的某些屬性(用戶名,密碼等),我封裝了所有東西,然後你需要方法來獲取和設置這些字段等。我發現即使我沒有創建完整的適當的UML圖表,使得這些簡單的東西不受阻礙,並且如果沒有別的東西讓我把注意力集中在更復雜的邏輯和我可能還不知道的東西上知道如何實施。

+0

我在六個月前完成了這個任務,大約完成了80%,工作得很好,我學到的東西比我在Java中的其他任何東西都要多。 – Eogcloud 2013-01-03 05:02:38

+0

不錯,我的靈感來自於你的項目也完成了一個。完成的定義是鬆散的...兩個客戶端程序可以通過服務器程序進行通信,但我沒有服務器來放置它,所以目前還沒有任何意義,所以我已經開始了一個節拍器項目。這聽起來很簡單,但是在Sound API和精確的線程時序之間,我真的會遇到一些主要的障礙,讓我知道你是否能夠爲那個工作做好準備:-)。 – 2013-01-03 05:20:16