问题标签 [sendto]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
369 浏览

windows - 为什么我的 Perl 脚本和 Windows 的 SendTo 不能使用超过 20 个文件?

我正在尝试模拟RapidCRC在 Windows Vista Ultimate 64 位上检查文件名中的 crc32 值的能力。但是,我似乎遇到了某种论点限制。

我写了一个快速的 Perl 脚本,创建了一个批处理文件来调用它,然后将批处理文件的快捷方式放在%APPDATA%\Microsoft\Windows\SendTo

当我选择大约 20 个或更少的文件时,这非常有用,右键单击并“发送到”我的批处理文件脚本。但是,当我选择更多时,什么也没有发生。我怀疑某处存在字符或参数数量限制。

希望我遗漏了一些简单的东西,并且解决方案或解决方法不会太痛苦。

参考:

批处理文件(crc32_inline.bat):

Perl 注释:

我正在使用(草莓)perl v5.10.0

我的路径中有 C:\strawberry\perl\bin,这是 crc32.bat 所在的位置。

perl 脚本 (crc32_inline.pl):

0 投票
2 回答
973 浏览

c - C 窗口发送到()

我正在尝试使用以下代码通过 UDP 发送,但我得到了奇怪的结果。

但是,当 totalLength 变量设置为 30 时,sendto 函数实际上返回 2292556,它不应该返回至少在 30 左右的东西吗?我在使用 sendto 之前检查了 totalLength 变量,它会很高兴地返回一个我同意的值,但随后 sendto 返回一个巨大的值。总长度永远不会大于实际缓冲区大小。

WSAGetLastError 只是返回 0。

谢谢。

0 投票
1 回答
2356 浏览

c - sendto() 崩溃,错误代码为“成功”

实际上,我的问题非常令人愤怒。我先给你看代码。

请原谅草率的代码;我拼命努力按时完成这项任务。目标是使用数据报套接字开发 ARQ 协议。这段代码应该可以工作,但是当我运行它时,我得到一个错误sendto: Success,这意味着我的sendto()调用失败了。我在任何地方都找不到这方面的文档,我变得非常绝望。

0 投票
7 回答
6868 浏览

c - 使用 UDP 套接字的多个 sendto()

我有一个网络软件,它使用 UDP 与同一程序的其他实例进行通信。由于不同的原因,我必须在这里使用 UDP。

我最近在通过 UDP 发送大量数据时遇到了问题,我不得不实现一个分片系统来将我的消息分成小数据块。到目前为止,它运行良好,但是当我必须发送大量数据块时,我现在遇到了一个问题。

我有以下算法:

  1. 将消息拆分成小数据块(大约 1500 字节)
  2. 遍历数据块列表,并为每一个,使用发送它sendto()

但是,当我发送大量数据块时,接收方只收到前 6 条消息。有时它会错过第六个而收到第七个。这取决于。

不管怎样,sendto()总是预示着成功。当我通过环回接口 (127.0.0.1) 测试我的软件但从未通过我的 LAN 网络测试我的软件时,总是会发生这种情况。

std::cout << "test" << std::endl;如果我在之间添加类似的东西,sendto()那么每一帧都会被接收到。

我知道 UDP 允许数据包丢失,并且我的帧可能由于很多原因而丢失,我想这与我发送数据块的速率有关。

这里的正确方法是什么?

  • 实现一些确认机制(就像 TCP 一样)似乎有点过头了。
  • 在两者之间添加一些任意等待时间sendto()是丑陋的,并且可能会降低性能。
  • 增加(如果可能的话)接收方 UDP 内部缓冲区?我什至不知道这是否可能。
  • 还有什么?

我在这里真的需要你的建议。

非常感谢。

应要求提供的附加信息

必须使用 UDP 的原因是因为我有几个限制:

  1. TCP 不能很好地与 NAT 遍历一起工作(至少在没有特定配置的情况下)
  2. 有些消息可能会丢失。有些人不能。
  3. 消息传递顺序无关紧要。
0 投票
2 回答
330 浏览

c# - SendTo 菜单和单实例程序

我正在制作一个程序,只需右键单击“SendTo”,我就可以将文件发送到 FTP 服务器。问题是每次我单击“SendTo”时,它都会打开一个新的 exe 文件,并且它作为一个单独的程序运行。我需要以某种方式发送带有已打开程序的文件。

谢谢你。

0 投票
1 回答
1147 浏览

visual-studio-2008 - VS 2008 创建的快捷方式未显示在“发送到”菜单中

我有一个使用 Visual Studio 2008 构建的 WinForms 应用程序。我在解决方案中添加了一个安装项目以创建一个安装 MSI 文件。我需要安装项目在用户发送到菜单中创建指向应用程序可执行文件的快捷方式。这样,当有人右键单击文件时,我的应用程序将显示在“发送到”列表中并被选中。

我在安装项目的文件系统设置下弄清楚了如何向用户发送到菜单添加快捷方式。问题是,当您右键单击文件时,快捷方式不会显示在“发送到”菜单中。如果我手动创建可执行文件的快捷方式,应用程序会显示在“发送至”菜单中。

我已经在网上阅读了许多关于所需注册表项的建议,以使其正常工作。有一个由 Ramesh Srinivasan 编写的 VBS 文件,用于插入它们。在我尝试过的每个系统上,注册表值已经存在,所以这不是问题。似乎更多的是使用 Visual Studio(或无论如何是 msi)正在创建的快捷方式。

我在 Windows XP 和 Windows 7 上遇到过同样的问题,我还没有在其他操作系统上尝试过。

0 投票
2 回答
783 浏览

c - 如果在 vpn 上广播,C sendto 返回 -1

我已经建立了一个经常广播消息的 udp 服务器。它广播没有问题。但是如果我打开我的 vpn,即使我正在发送到 INADDR_BROADCAST,sendto 也会开始返回 -1。

顺便说一句,如果这改变了任何东西,我将在 Mac 上运行它。我真的不知道为什么会发生这种情况,我真的很想知道 udp 广播怎么会失败?

0 投票
4 回答
2813 浏览

c# - SendToAsync memory leak?

I have a simple .net 3.5sp1 windows application (in C#) that acts as a UDP server. It listens on a port, receives data from an endpoint, and then retransmits what it receives to another endpoint (i.e. a relay, for a live broadcast data stream). What I'm experiencing is after the connection is up for about 20 minutes, it starts to deteriorate. Also I notice that it is gobbling up about 50-100K of memory per second, which doesn't ever get released after GC. I have to close the app and restart it. Not good. I have narrowed down the problem to the following code, which does the retransmission to the other side:

Does anyone have any experience with memory leaks with SendToAsync?

UPDATE:

I instantiate a state object (only done once) when the socket is initialized. The state object has a property called "buffer", which is a byte array. I receive data async from the socket like such:

And, then on my callback (ReceiveDataCB), I am retrieving the async object, and then passing the byte buffer to another function for processing, which in turn calls the code posted above for retransmission to the other side (state.buffer becomes readData).

UPDATE #2:

Following my gut, I changed the sending code to the following, getting rid of SocketAsyncEventArgs and SendToAsync:

And, of course, I added an "echoCB" callback that does nothing other than calling EndSendTo. The memory leak is now gone! I suspect it had something to do with creating so many SocketAsyncEventArgs objects, and the async function hanging onto these, one for each packet (at 33 packets per second, that can add up fast). I looked once again at the MSDN documentation for SocketAsyncEventArgs, and I noticed that on the server "example" code provided, they used a pool of SocketAsyncEventArgs objects. I don't think its really designed to work the way I was using it. I think the whole point is to not have to instantiate these buffers, etc, for each call, therefore reusing them and allowing the server better performance.

0 投票
2 回答
528 浏览

sockets - 什么时候一个套接字就足够了,我什么时候需要创建更多?

UDP 的“无连接”方面让我陷入了循环......

如果我将 UDP 套接字设置为 INADDR_ANY,然后将其绑定到本地机器上的端口 33445,则机器将接受来自各种客户端的传入连接。所有这些连接都将由那个套接字提供服务,因为这不是 TCP,我无法生成新的子套接字来直接处理每个连接。我可以从他们的最新消息中回复任何、部分或所有这些连接的客户。

所以对我来说事情变得有点模糊的地方就在这里......

我是否也可以随时向这些客户中的任何一个发送消息?还是我只能发送响应 recvfrom() 的消息?

另外,如果我希望该服务器(当它为客户端提供服务时)连接到另一台服务器并就其他事情进行对话,我认为我需要为此创建一个新套接字?我不能只使用现有的服务器套接字并指定一个新的目标地址吗?

非常感谢这个美好的社区。

编辑:让我换一种说法。似乎我只能使用绑定套接字来响应以前在该套接字上到达我的客户端。要启动与新主机的对话,我不能简单地为此目的使用绑定套接字吗?我必须创建一个新套接字才能访问正在侦听的服务器,对吗?

0 投票
1 回答
989 浏览

java - 在 Java 中,如何从 Windows 的上下文菜单中读取文件名

我是这里的新手,在 Java 编程中我正在尝试编写包含上下文菜单命令并读取文件名和他的完整路径的程序

例如,当我单击(鼠标右键)某个文件并获取上下文菜单并选择任何选项(复制、发送到或打开方式)时,我希望我的程序将读取文件名和他的完整路径。

现在我只有一个带有文本框的表单,还没有代码。

我想知道我应该如何开始,或者是否有人有想法或代码来帮助我

非常感谢!