【发布时间】:2012-07-19 22:41:28
【问题描述】:
这周,我稍微弄乱了 Chromium 的 Socket API。但是对于这个记录不良的实验界面,我还不是很清楚。
Google 代码上的 docs 是什么意思:
...关于sendTo()此刻:
在给定的套接字上写入数据。
socketId ( integer )socketId。
data ( ArrayBuffer )数据 写。
address ( string )远程机器的地址。
port ( integer )远程机器的端口。
SendToCallback ( function )
但sendTo() 的描述与write() 的描述完全相同(write - 在给定的套接字上写入数据。)。 recvFrom() 和 read() 也一样——它们都有完全相同的描述(read - 从给定的套接字读取数据。 / recvFrom - 读取数据从给定的套接字。)。但是没有人对差异说任何有趣的事情。
我发现了什么:
不管我在做什么,sendTo 总是返回以下对象:
- [-] 对象
bytesWritten:-2- [+]
__proto__: 对象
如果我在所有这些情况下都使用write 而不是sendTo,那么一切都会按预期进行。
recvFrom() 和 read() 也是如此 - read() 正常工作,recvFrom() 失败。
我的问题:
-
sendTo()是什么,write()有什么区别 和sendTo()? -
recvFrom()是什么,read()和recvFrom()有什么区别? - 为什么有这么多类似的方法?
-
并且:是否有一些关于 Socket API 的更多信息? Google Code 文档非常轻量级。
chromium.org上没有相关的文章吗?
谢谢。
【问题讨论】:
-
我最好的猜测是
sendTo用于未参与connect操作的套接字。如果您不使用connect套接字,sendTo是否有效? -
@apsillers 我对此进行了一些试验,
sendTo工作的唯一情况是当我在绑定的 UDP 套接字上应用该方法时。我在 Google Code 或chrome.org上找不到任何相关信息,但我认为目前在 TCP 套接字上没有任何使用sendTo的案例。
标签: sockets google-chrome tcp google-chrome-extension chromium