问题标签 [recv]

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 投票
2 回答
1062 浏览

c - recv 覆盖一个 char[]

我正在尝试制作一个小的客户端-服务器脚本,就像我过去做过的许多其他脚本一样。
但在这个我有一个问题。如果我发布代码和它给我的输出会更好。
代码:

客户端发送字符串:./send -i 10.10.10.4 -f filename.ext
所以脚本在服务器上发送 -i (IP) 和 -f (FILE)。
这是我的输出服务器端:

1 10.10.10.6
2 10.10.10.6
3
文件名.ext@10.10.10.4 为

如您所见, printf(3) 和 printf(ip,file,ip) 失败。
我不知道如何以及在哪里,但有人覆盖了我的 hacker_ip 字符串。
谢谢你的帮助!:)

0 投票
2 回答
4325 浏览

python - Python:如何在等待 recv 中的数据时关闭 UDP 套接字?

让我们在 python 中考虑这段代码:

它运行一个交互式 shell,我可以使用它来启动和停止 UDP 服务器。服务器是通过一个类来实现的,该类启动一个线程,其中在try/except 块内有一个recv / onPacket回调的无限循环,该块应该检测错误并退出循环。我期望的是,当我在 shell 上键入“stop”时,套接字会关闭,并且由于文件描述符无效,recvfrom函数会引发异常。相反,即使在关闭调用之后, recvfrom似乎仍然会阻塞等待数据的线程。为什么会出现这种奇怪的行为?我一直使用这种模式在 C++ 和 JAVA 中实现 UDP 服务器,并且它总是有效。

我还尝试使用“ select ”将带有套接字的列表传递给xread参数,以便从select而不是从recvfrom获取文件描述符中断事件,但select似乎对关闭也“不敏感” .

我需要一个唯一的代码,它在 Linux 和 Windows 上使用 python 2.5 - 2.6 保持相同的行为。

谢谢。

0 投票
4 回答
23712 浏览

python - 如何从 Python 中的另一个线程中止 socket.recv()

我有一个等待连接的主线程。它生成客户端线程,这些线程将回显来自客户端的响应(在本例中为 telnet)。但是说我想在一段时间后关闭所有套接字和所有线程,比如在 1 次连接之后。

我该怎么做?如果我clientSocket.close()从主线程执行,它不会停止执行recv. 只有当我首先通过 telnet 发送某些东西时它才会停止,然后它将无法进行进一步的发送和接收。

我的代码如下所示:

0 投票
2 回答
2868 浏览

tcp - 如果接收到有效载荷大小为 0 的有效 TCP 数据包,recv() 将返回什么值

在 TCP 套接字编程中,如果recv()返回 0,则表示对方关闭了其连接。但是,AFAIK,TCP RFC 不要求 TCP 的有效负载大于 0。因此,理论上,TCP 堆栈可以接收有效负载为 0 的消息。

所以,基本上我的问题是,recv()如果它接收到一个大小为 0 的有效载荷数据包会返回什么?如果它返回 0,那么我们如何将它与关闭的连接指示区分开来。

0 投票
2 回答
437 浏览

python - SimpleXmlRpcServer _sock.rcv 在数千个请求后冻结

我正在通过 WAN 处理来自多个 XMLRPC 客户端的请求。这个东西非常适合,比如说,一天(有时是两天),然后在 socket.py 中冻结:

_sock.timeout 为 -1,_sock.gettimeout 为无

我在主线程中没有什么特别的(只是接收 XMLRPC 调用),还有另外两个线程与 DB 通信。这两个线程都工作正常并且在这个块中存活下来(用 WinPdb 进行了检查)。客户端发送的请求不超过 1KB,并且没有任何特殊内容:只是字典中漂亮而干净的字符串。在两次阻塞之间,我可以毫无问题地处理数万个请求。防火墙已关闭,同一台机器上没有奇怪的软件等...

我使用 Windows XP 和 Python 2.6.4。我检查了 2.6.4 之间的差异。和 2.6.5,并没有发现任何重要的东西(或者我弄错了吗?)。2.7 版本不是一个选项,因为我会错过 MySqlDB 的二进制文件。

由互联网连接不良的客户端不时发生的唯一事情是套接字中断。这种情况每 5-10 分钟发生一次(每 2 秒只有五个客户端访问服务器)。

我在这个问题上花了很多时间,现在我开始失去任何想法该做什么。任何提示或想法将不胜感激。

0 投票
5 回答
5430 浏览

perl - 当数据长度未知时,从 Perl 中的套接字接收数据的最佳方法是什么?

现在,我在循环中一次读取一个字符,直到读到该\0字符。有一个更好的方法吗?

0 投票
2 回答
1678 浏览

sockets - 同时在一个套接字上进行 recv() 和 send() 是否安全?

我记得在某处读到一个套接字可以被视为两个独立的半双工通道。这是否意味着recv()send()一个套接字的和实际上是不相关的?

  • 如果是这样,它是根据定义还是特定于实现?
  • 如果不是,两者如何相互干扰?

谢谢。

0 投票
2 回答
6999 浏览

c++ - 使用 Winsock 读取所有信息时结束“recv()”循环

我在 winsock 的 recv() 循环中遇到问题。我试图在 iResult==0 时终止循环,但是,循环仅在套接字关闭时结束。它似乎挂在 iResult 等于 0 的最后一个 recv() 处。那么关于如何有效终止循环的任何想法?我的最终目标(无论 iResult == 0 与否;也许我的做法是错误的)是在读取所有发送的信息后停止循环。这是循环。

就像我说的,我正在接收所有数据,我就是无法退出循环。下一步是将数据写回服务器,但它会挂在这里直到 ping 超时。套接字是 SOCK_STREAM 并且 BUFLEN 定义为 0x200

谢谢

0 投票
3 回答
12136 浏览

html - 通过套接字下载 HTTP (C)

最近,我开始阅读本指南以开始从 Internet 下载文件。我阅读了它并想出了以下代码来下载网站的 HTTP 正文。唯一的问题是,它不起作用。调用 recv() 调用时代码停止。它不会崩溃,它只是继续运行。这是我的错吗?我使用了错误的方法吗?我打算使用该代码不仅下载 .html 文件的内容,还下载其他文件(zip、png、jpg、dmg ...)。我希望有人可以帮助我。这是我的代码:

0 投票
3 回答
54 浏览

arrays - 如何寻址(一维)数组的一部分?

我是 C 编程的新用户。我试过在网上研究这个,但找不到答案……如何访问 C 中数组的一部分?例如,

做什么的语法是:Data = Input[12:15] 这样

实际上,我正在尝试使用 TCP 套接字填充数组的一部分:

我希望将接收到的数据放置在从数组索引“indx”到“indx+1024”的 YRaw 数组中。

在此先感谢,gkk