这里的Socket编程不是指使用XmlHttpRequest对象, 而是真正的创建一个Socket实现收发数据。 使用Javascript调用Java的NIO接口实现的Socket编程。
实现一个简单的EchoServer,创建文件 :EchoServer.js
var socket = __import__('Socket', null, {}) //导入Socket library..
var server = new socket.SocketServer('127.0.0.1', 8000) //创建一个Socket Server.
server.on('listen', function(server) { //加入服务器开始监听的事件
print('Event listen on server:' + server.localAddress + ', port:' + server.localPort)
})
server.on('clientClosed', function(client) {
print('Event clientClosed on server:' + client.address + ', port:' + client.port)
})
server.on('closed', function(socket) {
print('Event closed on server')
})
server.on('accept', function(client){ // 一个新的client连接
print('new client:' + client.address + ', port:' + client.port)
client.on('read', function(s) { //clinet的有数据可读。
var input = s.read();
print('read data:' + input)
s.write(input) //写数据到,
});
client.on('closed', function(s) {
print('bye bye client.')
//s.write('input')
});
})
server.listen("127.0.0.1", 8000) //监听一个端口, 并blocking, 直到服务器端被关闭。
运行:
# js EchoServer.js Event listen on server:localhost, port:8000 打开新的窗口输入 #telnet 127.0.0.1 8000 # 服务端显示 Event listen on server:localhost, port:8000 new client:localhost, port:1978 event:read read data:a event:read read data:b event:read read data:c 测试服务器连接成功.
运行上面的代码,还需要一个运行环境和Socket 库, 可以到 http://code.google.com/p/js-shell/downloads/list 下载一个night build.
本文介绍如何使用JavaScript结合Java NIO接口实现Socket编程,通过创建一个简单的EchoServer示例,演示了服务器的监听、客户端连接处理及数据收发过程。
6095

被折叠的 条评论
为什么被折叠?



