java socket 服务端:javascript 的Socket 服务端编程。

这里的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.
本文链接http://www.cxybl.com/html/wyzz/JavaScript_Ajax/20120723/32103.html

时间: 2024-11-01 17:18:54

java socket 服务端:javascript 的Socket 服务端编程。的相关文章

java socket手机通信-关于java的问题:手机用socket连接电脑的服务端时老出现文件找不到的错误,求解决

问题描述 关于java的问题:手机用socket连接电脑的服务端时老出现文件找不到的错误,求解决 30C 解决方案 也可以私聊我.扣扣1944687725 解决方案二: 解决方案三: 你那个斜杠是不是写反了 passwdinput.dat 解决方案四: 你仔细看看出错的提示, 是读文件的时候找不到,对应的代码是在ServerThread.java的51行然后,你把路径改为绝对路径试一试,如果可以了,就是你相对路径的根目录不对.保证passwd文件夹在你的执行目录下 解决方案五: 右键 prope

java-JAVA Socket服务端 的到socket的连接数

问题描述 JAVA Socket服务端 的到socket的连接数 RT:怎么获取 多少个客户端连接我的服务端,求大神指教!!! 解决方案 可以用一个变量计数,没有一个客户端连接就加1. 解决方案二: 应该是服务端在接到连接的时候用一个链表把链接存储起来,然后遍历链表得到数量. 解决方案三: 创建一个连接就存到hash表里,断开连接就从hash表里删除,获取hash表的大小就是连接数 解决方案四: 做一个计数器,增加连接+1,断开连接-1 解决方案五: java Socket服务端3.java s

tcp连接-TCP连接时,服务端监听socket接收客户端连接后新创建的socket默认绑定的端口是监听端口吗?

问题描述 TCP连接时,服务端监听socket接收客户端连接后新创建的socket默认绑定的端口是监听端口吗? 比如用来监听连接的socket绑定23端口,服务端每接受一个连接都新开一个线程和客户端通信,并把新socket传递给新线程,是不是所有新创建的socket都是经过23端口和客户端通信? 解决方案 是的,都通过端口23进行通信 解决方案二: 都是监听端口,如果不是客户端就不能将数据发送到服务器 解决方案三: 23只是监听建立连接,后续数据交换走实际上端口

socket客户端有几种发送消息到服务端的方式,服务端应该怎么取出这个值

问题描述 socket客户端有几种发送消息到服务端的方式,服务端应该怎么取出这个值 场景,我有一个服务端,客户端是超级网口USR-K3的TCPClient.K3发送消息给我服务端时,已经跟我建立连接,服务端已经看到了它的IP和端口,但是在取出K3发过来的值时,显示为"null".求大神告知是不是我取值的方法和K3放值得方法不一样才取不出值. 解决方案 public void run() { try { // 采用循环不断从Socket中读取客户端发送过来的数据 while (true)

客户端和服务端通过建立socket通信,协议是tcp/ip

问题描述 客户端和服务端通过建立socket通信,协议是tcp/ip 有一个问题咨询:一个客户端和一个服务端通过tcp/ip连接(之间建立socket通信),在不断网的情况下,服务端关闭,客户端报警,重新开启服务器,客户端能够重新连接上服务端,但是如果拔掉网线,客户端就连接不上服务端了,但从服务端发送过来的数据还是可以读到,可是从客户端发送的数据不能到达服务端,这是为什么??? 解决方案 TCP的客户端和服务端通信socket 客户端和服务端的TCP基本通信简单的Socket通信客户端和服务端

视频-服务端控制客户端Socket

问题描述 服务端控制客户端Socket 服务端如何通过Socket控制客户端在某个定点时刻播放视频,如果有代码的可以分享我吗?谢谢 解决方案 本人也是最近接触Socket,懂得不多,只能给你提供一个思路. 你可以在客户端添加一个线程,使用不同于原来的的Socket Port建立一个通讯, 客户端的那个线程不断接收服务端的回传信息, 根据回传的信息在这个线程中控制你想要的进度. 解决方案二: 首先要让客户端和服务器端游一个长连接,并且要有心跳包来保证accept,之后到时间服务器端给客户端发送一个

在线等。Socket从客户端连接后,服务端无法返回内容,报错。

问题描述 情况如下:我从客户端连接server端.连接创建成功,然后,客户端发送一个注册码,server端也能够接收到.然后,server端返回一个成功提示,这时候,报错了.At2014/9/3011:23:03,执行命令内容时出现错误,原因来自于:远程主机强迫关闭了一个现有的连接.在System.Net.Sockets.Socket.Send(Byte[]buffer,Int32offset,Int32size,SocketFlagssocketFlags)在DEC.SocketCommon.

MongoDB服务端JavaScript脚本使用方法_MongoDB

常用JavaScript语句 复制代码 代码如下: db.getSiblingDB(<dbname>)   db.getCollectionNames()    db.getCollection(<collname>)    db.printCollectionStats() 在mongo shell运行JavaScript脚本   切换数据库:   复制代码 代码如下: use <dbname> 运行如下脚本: var total = 0; var dbaStatCo

tomcat通过socket连接MySQL,不再占用服务端口【linux】

MySQL连接方式的说明 http://icbm.iteye.com/blog/1840673 MySQL除了最常见的TCP连接方式外,还提供SOCKET(LINUX默认连接方式).PIPE和SHARED MEMORY连接方式.  各连接方式的服务器.客户端启动选项,及连接默认值见下表:  TCP连接(Linux,Windows):  目标 启动选项 默认值 SERVER --port=PORT 3306 CLIENT --protocol=TCP --port=PORT 3306 SOCKET