网页发送udp数据问题总结,但还没有实现

网络技术 1476 0 2015-01-22

网页发送udp数据问题总结,但还没有实现
哎……研究了好多天了,发现困难重重啊,总结一下吧:

目的:想在网页上点击一个button就发送数据给服务器(用udp的方式)

服务器架构:
有一个tcp接口专门用于http的传输,所以可以用web的方式来访问它。还有一个udp接口来传输具体的数据。

想实现的方式是:
客户端(PC)用web的方式访问服务器,服务器把自己的内部数据更新到web上并给pc端;
用户在pc端可以浏览服务器的内部数据并且可以修改,修改之后点击一个button可以以udp的方式发给服务器,服务器接收到修改过的数据之后更新自己。
也就是一句话:tcp只传网页的代码;udp是数据通路。代码和数据分开的思想(也不知道这样对不对,呵呵)

但是问题来了:
js,vbs都不支持socket(其实是支持的,甚至winsock都可以,单独写一个脚本直接运行是可以的,但是嵌入到网页中用按钮触发就不行),上 网搜了一下,说是socketjs可以,还有xingqiliudehuanghun朋友说的aflax我也研究了一下,不管是socketjs还是 aflax,实现原理都是一个,就是网页中嵌入一个flash文件,调用flash的socket来发送数据,但问题又来了……flash的socket 不支持udp,目前只支持tcp……哎,看来这个架构只能胎死腹中了……

发这个总结的目的:
希望后来的朋友能少走弯路,当然如果有哪位高手曾经做过并且已经解决了的也希望能够指点小弟,多谢多谢

上一篇:web网页使用javascript连接打印机进行配置打印

下一篇:在未连接的Socket上发送UDP数据报的方法

讨论数量:1

天涯网魂 3 杠 5 星2015-01-22 17:46:14

之前没有做过类似的东西,插件用什么来写,用VC写activex插件可以用吗??
我直接调用的winsock插件,不可以的,
挺奇怪的,代码请看:
代码1:
var sendata;
var sock = new ActiveXObject("MSWinsock.Winsock");
sock.Protocol = 1;
sock.RemoteHost = "192.168.3.251";
sock.RemotePort = 57298;
sock.LocalPort = 57298;
sock.Bind(57298);

sendata = "Hello!!!";
sock.senddata(sendata);
sock.close(); 

我将代码1保存为:“test.js”直接运行,是可以发送udp数据的,但是我将代码1嵌入到html网页中,在网页中点击按钮调用就不可以,以下是html的代码:

代码2:
<html>
<head>
<script language=javascript>
 test_send(){ 
   var sendata;
   var sock = new ActiveXObject("MSWinsock.Winsock");
   sock.Protocol = 1;
   sock.RemoteHost = "192.168.3.251";
   sock.RemotePort = 57298;
   sock.LocalPort = 57298;
   sock.Bind(57298);

   sendata = "Hello!!!";
   sock.senddata(sendata);
   sock.close(); 
}
</script>
</head>
<body>
 <form name="myform">
 <input type="button" name="tstbtn" value="发送测试" onClick=‘test_send();'>
 </form>
</body>
</html>

点击按钮时一直显示网页有错误,
请教啊,谢谢啦

请先登录再发表讨论。 2024-03-29

天涯网魂
3 杠 5 星
TA 的文章
TA 的随言
TA 的资源链