**我有什么:**一个C应用程序服务器运行,准备发送数据到客户端,这是一个HTML5页面或应用程序。**我想要的:**有没有办法使用udp端口与HTML5通信,因为c服务器和HTML5应用程序都是系统本地的?我所知道的
答案还是“不”吗?是否有可能的变通方案?任何线索都很感谢。
sgtfey8w1#
是,答案仍然是“否”。WebSocket是基于TCP的。请注意,WebSocket不是普通TCP连接,有HTTP协商和帧协议。因此,您也不能在Javascript中创建普通TCP连接。WebRTC基于UDP,它可能涵盖您的用例:http://www.html5rocks.com/en/tutorials/webrtc/datachannels/
r1wp621o2#
Chrome现在似乎有了一些东西:https://developer.chrome.com/apps/sockets_udp
holgip5t3#
看起来UDP for web仍然是一个活跃的发展领域和潜在的标准创建。发布此答案以记录截至2020年5月的一些新信息。下面的白皮书概述了一条满足“不可靠-无序”协议安全需求的潜在途径:https://gafferongames.com/post/why_cant_i_send_udp_packets_from_a_browser/桌面Chrome和桌面Firefox的扩展正在积极开发中。https://github.com/RedpointGames/netcode.io-browser移动的浏览器的设计方式阻止了目前添加这种修改(再次出于良好的安全原因),但可以在未来添加。
goqiplq24#
这是一个主要的issue for gamers,请查看该链接,了解有关websockets、webrtc、quic(chrome)和作者的netcode.io的讨论
ctzwtxfj5#
你也可以创建一个额外的python本地服务器来桥接你的C应用程序和网页之间的数据。html5网页连接到允许Web Socket连接的本地端口(使用Flask/tornado)。C应用程序连接到不同端口上的UDP侦听器。请参见https://wiki.python.org/moin/UdpCommunication进行设置。python服务器基本上在UDP端口到WebSocket连接之间形成了一个透明的数据桥。
dy2hfwbg6#
阅读完所有的链接和评论,我们可以得出结论:
否,您无法从浏览器发送UPD包。
你可能不会,因为添加这样的功能将是网络安全的一个巨大倒退。
bn31dyow7#
你可能会使用一个变通办法,设计一个程序/脚本/服务器(我会使用PHP,作为一个html客户端),以获得UDP的克从服务器,如果你想我可以帮助,我已经在类似的东西。
7条答案
按热度按时间sgtfey8w1#
是,答案仍然是“否”。WebSocket是基于TCP的。请注意,WebSocket不是普通TCP连接,有HTTP协商和帧协议。因此,您也不能在Javascript中创建普通TCP连接。
WebRTC基于UDP,它可能涵盖您的用例:http://www.html5rocks.com/en/tutorials/webrtc/datachannels/
r1wp621o2#
Chrome现在似乎有了一些东西:https://developer.chrome.com/apps/sockets_udp
holgip5t3#
看起来UDP for web仍然是一个活跃的发展领域和潜在的标准创建。发布此答案以记录截至2020年5月的一些新信息。
下面的白皮书概述了一条满足“不可靠-无序”协议安全需求的潜在途径:https://gafferongames.com/post/why_cant_i_send_udp_packets_from_a_browser/
桌面Chrome和桌面Firefox的扩展正在积极开发中。https://github.com/RedpointGames/netcode.io-browser移动的浏览器的设计方式阻止了目前添加这种修改(再次出于良好的安全原因),但可以在未来添加。
goqiplq24#
这是一个主要的issue for gamers,请查看该链接,了解有关websockets、webrtc、quic(chrome)和作者的netcode.io的讨论
ctzwtxfj5#
你也可以创建一个额外的python本地服务器来桥接你的C应用程序和网页之间的数据。
html5网页连接到允许Web Socket连接的本地端口(使用Flask/tornado)。
C应用程序连接到不同端口上的UDP侦听器。请参见https://wiki.python.org/moin/UdpCommunication进行设置。
python服务器基本上在UDP端口到WebSocket连接之间形成了一个透明的数据桥。
dy2hfwbg6#
阅读完所有的链接和评论,我们可以得出结论:
否,您无法从浏览器发送UPD包。
你可能不会,因为添加这样的功能将是网络安全的一个巨大倒退。
bn31dyow7#
你可能会使用一个变通办法,设计一个程序/脚本/服务器(我会使用PHP,作为一个html客户端),以获得UDP的克从服务器,如果你想我可以帮助,我已经在类似的东西。