你好我正在尝试传输文件。我有一些程序将文件转换为二进制文件,并通过网络使用C++进行传输。我想知道我是否可以使用javascript和websockets传输文件?任何关于如何将我的C++程序整合到JavaScript的例子将不胜感激。谢谢。用JavaScript通过websockets传输文件
回答
JavaScript有两个新的二进制类型:类型数组(arraybuffers)和斑点(基本文件)。
WebSockets支持发送和接收类型化数组和blob。
要使用WebSockets在两个浏览器之间传输数据,您将需要一个服务器供它们连接(浏览器WebSocket支持仅在此处为客户端)。
如果您在C++中有一个处理文件传输的现有服务器,那么您应该可以相当容易地向其添加WebSocket服务器支持。您可以在此页面上找到的WebSocket客户端和服务器的实现:http://en.wikipedia.org/wiki/Comparison_of_WebSocket_implementations
在JavaScript建立到WebSocket服务器的连接,你做这样的事情:
ws = new WebSocket("ws://100.101.102.103");
的send()方法支持普通字符串,键入数组或blob。发送键入的数组和blob将导致服务器接收的帧作为二进制帧(操作码= 2)。如果服务器发送一个二进制帧/消息,则该事件的onMessage数据属性将包含或者根据类型化的阵列或团块
ws.onmessage = function (evt) {
console.log("Got ws message: " + evt.data);
};
:
ws.send(myTypedArray);
要接收消息你注册消息处理binaryType属性的设置。您可以更改接收到的二进制数据的类型,如下所示:
ws.binaryType = "blob"; // or "arraybuffer"
你想要做的事是不可能的。 WebSocket只能在客户端模式下运行;它不能接受来自另一个WebSocket客户端(如另一个浏览器)的连接。
可以通过服务器将WebSocket客户端连接到另一个服务器,但此时它不再是真正的点对点,所以我不确定这是否真的有用或有趣。
谢谢,如果你能提供关于如何通过服务器做到这一点,将不胜感激的例子。 =) – DasBoot 2012-07-09 06:33:10
- 1. 通过Putty传输文件
- 2. 通过ICMP传输文件
- 3. 通过ODATA传输文件
- 4. 通过ssh传输文件
- 5. 通过WCF文件传输
- 6. 通过SFTP传输文件
- 7. 通过SFTP传输文件
- 8. 通过qpid传输文件
- 9. 通过HTTP传输文件
- 10. 通过telnet传输文件?
- 11. 什么是通过WebSockets传输文本的正确方式?
- 12. 使用cmd通过ftp传输文件
- 13. 使用SleekXMPP通过XMPP传输文件
- 14. 使用javascript通过WebSockets连接到Rserve
- 15. 通过Websockets上传到Play Framework 2.0的文件
- 16. 通过HTTP通过WCF流式传输文件上传IOException
- 17. 大型文件传输的最佳方法通过使用PHP(POST)通过http调用文件传输
- 18. 通过Websockets进行视频流式传输
- 19. 通过websockets流式传输音频IBM不工作
- 20. 通过websockets发送popen输出
- 21. 如何通过tcpip传输db文件?
- 22. 通过网络传输文件
- 23. 通过套接字传输文件c
- 24. C#文件传输通过套接字
- 25. 通过Java中的Socket传输文件
- 26. 通过WiFi在iPhone上传输文件
- 27. 通过JMX方法传输文件
- 28. 通过USB进行Android文件传输
- 29. 通过插座传输文件
- 30. p2p文件传输通过互联网
我也有兴趣如果这是可能的。 – DasBoot 2012-07-09 06:37:49