我期待將基於java線程的tcp套接字服務器轉換爲基於javascript的(最好是nodejs)異步tcp套接字服務器。這是我的應用程序,現在正在學習nodejs。認爲通過這種方式瞭解更多關於nodejs的信息是一個很好的練習。轉換java基於線程的tcp套接字服務器到javascript async tcp套接字服務器
我已經看過nodejs並將使用網絡模塊。我也讀過nodejs是基於事件的,並且不會執行基於線程的東西。
任何想法?
我期待將基於java線程的tcp套接字服務器轉換爲基於javascript的(最好是nodejs)異步tcp套接字服務器。這是我的應用程序,現在正在學習nodejs。認爲通過這種方式瞭解更多關於nodejs的信息是一個很好的練習。轉換java基於線程的tcp套接字服務器到javascript async tcp套接字服務器
我已經看過nodejs並將使用網絡模塊。我也讀過nodejs是基於事件的,並且不會執行基於線程的東西。
任何想法?
的問題實際上是非常模糊的,但我會盡量回答張貼一個非常簡單的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...
});
});
我的java服務器當前接收ascii文本。它首先與客戶握手(認證),然後發送由'\ r \ n'分隔的數據。由'\ r \ n'分隔的每行都需要插入到mysql數據庫中。現在,它運行在帶有線程的java套接字上。我讀了nodejs沒有線程的概念(光纖除外),並且想寫一個異步tcp服務器來與入站客戶端進行通信。 – extensa5620
增加了一些新的代碼... – pliguori
好的@ pibe81,我會試一試這段代碼。 – extensa5620
刪除'[java]'作爲答案不會與Java有任何關係。 –
感謝您的更新,@PeterLawrey – extensa5620