在浏览器中使用Javascript实现UDP端口连接

在浏览器中使用Javascript实现UDP端口连接,javascript,html,browser,webrtc,Javascript,Html,Browser,Webrtc,所以我尝试从javascript发送一个端口敲打序列 TCP部分使用WebSocket非常简单 我已经读到WebRTC是浏览器提供的最接近发送UDP数据包的东西。。。但是WebRTC只是为了尝试发送UDP“敲门”,需要消化很多东西 甚至可以使用WebRTC通过UDP“敲打”吗?如果是,请提供一个简单的例子。我只是在寻找一个简单的工作示例。也就是说,要通过TCP“敲打”,您可以使用以下方法: var sock = new WebSocket("ws://"+ host +":"+ port);

所以我尝试从javascript发送一个端口敲打序列

TCP部分使用WebSocket非常简单

我已经读到WebRTC是浏览器提供的最接近发送UDP数据包的东西。。。但是WebRTC只是为了尝试发送UDP“敲门”,需要消化很多东西

甚至可以使用WebRTC通过UDP“敲打”吗?如果是,请提供一个简单的例子。我只是在寻找一个简单的工作示例。也就是说,要通过TCP“敲打”,您可以使用以下方法:

var sock = new WebSocket("ws://"+ host +":"+ port);

实际上,可以使用浏览器发送UDP数据包

您可以编写一个chrome扩展(app),它将允许您访问manifest.json中的(
“sockets”:{…}

或者,就WebRTC而言:

var pc = new webkitRTCPeerConnection(
    { "iceServers": [{ "url": "stun:localhost:1234" }] }
);

pc.createOffer(function (sessionDescription) {
    pc.setLocalDescription(sessionDescription);

}, function(error) {
    alert(error);
}, { 'mandatory': { 'OfferToReceiveAudio': true, 'OfferToReceiveVideo': true } });
还有一个快速的ruby脚本

需要“插座”

$port = 1234

t = Thread.start do
  server = UDPSocket.open
  server.bind(nil, $port)
  4.times do
    a = server.recvfrom(12364)
    p a
    p server.send "ping", 0, a[1][2], a[1][1]
  end
end

t.join
[“\x00\x01\x00\x00!\x12\xA4B0PgJcgcqalrO”,[“AF_INET”,51881,“192.168.0.27”,“192.168.0.27”] 4. [“\x00\x01\x00\x00!\x12\xA4Bbmfxf2ABsZws”,[“AF_INET”,53092,“192.168.0.27”,“192.168.0.27”] 4. [“\x00\x01\x00\x00!\x12\xA4B0PgJcgcqalrO”,[“AF_INET”,51881,“192.168.0.27”,“192.168.0.27”] 4. [“\x00\x01\x00\x00!\x12\xA4Bbmfxf2ABsZws”,[“AF_INET”,53092,“192.168.0.27”,“192.168.0.27”]

但我不确定这是否符合“端口敲击序列”


Ref:

否,无法从浏览器发送UDP数据包。@symcbean我不同意这种说法。可以从浏览器发送UDP数据包。@wpp:您的示例不从浏览器发送UDP,而是创建一个在浏览器中运行的自定义扩展。也可以使用ActiveX或Java实现此结果,但这需要在客户端上安装自定义组件。@symcbean我的示例不创建扩展。它使用WebRTC ICE收集(发送UDP数据包以确定媒体会话的可能候选对象)。还是我误解了什么?