2013-05-20 177 views
0

我期待將基於java線程的tcp套接字服務器轉換爲基於javascript的(最好是nodejs)異步tcp套接字服務器。這是我的應用程序,現在正在學習nodejs。認爲通過這種方式瞭解更多關於nodejs的信息是一個很好的練習。轉換java基於線程的tcp套接字服務器到javascript async tcp套接字服務器

我已經看過nodejs並將使用網絡模塊。我也讀過nodejs是基於事件的,並且不會執行基於線程的東西。

任何想法?

+0

刪除'[java]'作爲答案不會與Java有任何關係。 –

+0

感謝您的更新,@PeterLawrey – extensa5620

回答

0

的問題實際上是非常模糊的,但我會盡量回答張貼一個非常簡單的TCP服務器我已經見過的NodeJS做的鏈接:

http://www.hacksparrow.com/tcp-socket-programming-in-node-js.html

你說的沒錯,你必須設置一些事件來處理數據處理等問題,但這很大程度上取決於服務器的用途,接收的數據類型以及期望生成的數據。

如果你給我們提供一些關於你的問題的更多細節,我想我們可以更好地闡明它的功能。

OK完美,所以下面給你的新的細節,你必須做這樣的事情,開始聽:

var server = net.createServer(); 
server.listen(PORT, HOST); 
console.log('Server listening on ' + server.address().address +':'+server.address().port); 

,然後這個監聽連接和處理數據:

server.on('connection', function(sock) { 
    console.log('CONNECTED: ' + sock.remoteAddress +':'+ sock.remotePort); 
    sock.on('data', function(data) { 
     console.log('DATA ' + sock.remoteAddress + ': ' + data); 
     // here you'll do all your data processing, for instance 
     // call some JSON webservices that will write SQL queries... 
    }); 
}); 
+0

我的java服務器當前接收ascii文本。它首先與客戶握手(認證),然後發送由'\ r \ n'分隔的數據。由'\ r \ n'分隔的每行都需要插入到mysql數據庫中。現在,它運行在帶有線程的java套接字上。我讀了nodejs沒有線程的概念(光纖除外),並且想寫一個異步tcp服務器來與入站客戶端進行通信。 – extensa5620

+0

增加了一些新的代碼... – pliguori

+0

好的@ pibe81,我會試一試這段代碼。 – extensa5620