2013-01-19 57 views
0

我嘗試構建簡單的客戶端應用程序,將數據發送到服務器並從中接收數據。 在大多數時間它會異步交換數據(除了日誌記錄過程)Java,NIO,一個具有讀寫功能的線程

我讀過很多教程,文章等,但我找不到足夠的描述爲我(我是新手在Java)如何構建代碼:

  • 讀/寫(簡單的線條爲 「\ n」 末-string)
  • 重新連接(如果發現錯誤)

客戶端服務器(我已經寫在另一個開發環境中),都在一個線程?

有人可以通過給我簡單的例子或addreess幫助我,我可以在哪裏找到關於簡單的使用NIO提供的目的?我發現的所有例子只針對讀或寫(不混合)或簡單連接,發送數據和斷開連接而沒有解釋異常,重新連接。

+2

你能告訴你你已經完成了多少代碼嗎?你的具體問題是什麼?這是一個帖子中太多的問題。 – Jonas

+0

NIO對於面向行的協議或客戶端來說都不是好選擇。我會使用BufferedWriter和BufferedInputStream以及一些線程。 – EJP

+0

謝謝。我無法找到關於NIO和Android的好教程(它是我的java目標平臺),因此我儘量使用普通套接字和兩個線程(讀取和發送數據)。但我在同步它們時遇到了問題 - 我的意思是一個特殊的錯誤時刻,需要重新連接(關閉連接並重新設置):兩個互相競爭的線程互相對抗(當出現錯誤並嘗試重新連接時,第二個線程可以正常工作)。如何同步這個以避免戰鬥問題? – Artik

回答

0

這不是一個真正的NIO問題,它只是一個線程間通信問題。

第二個線程會得到與第一個線程相同的異常,它可以查看reconnectPending布爾值,它可以在重新連接套接字時由第一個線程設置。