问题标签 [sockets]

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 投票
3 回答
6250 浏览

exception - 第一次机会例外在: 0x000006BA: RPC 服务器不可用

这是什么意思:“第一次机会异常在:0x000006BA:RPC 服务器不可用”?

当我使用套接字连接时,此调试消息出现在 Visual Studio 调试器的调试输出中,但我不知道什么操作会启动此消息...

0 投票
2 回答
1079 浏览

.net - .NET 中的 TCP 连接质量

我有一个关键任务实时数据应用程序,它在客户端和服务器之间使用 TCP 连接。在某些情况下,连接会定期终止(SocketException)。没问题 - 只需重新连接并继续。但是,客户对这些断断续续的连接性下降并不感到兴奋。

我想知道手指在哪里。是客户端还是服务器?硬件还是软件?与以太网链接有关吗?最终结果将是向用户显示连接健康状况的指标,以便可以调查和修复不良链接。

我可以从 TcpClient、Socket 或其他任何可以告诉我连接健康状况的指标中提取任何指标吗?也许平均确认时间,重试次数等?

我特别想了解 TCP 连接 - 不仅仅是整个以太网连接(您的 LAN 连接可能很花哨,但到外部服务器可能会出现问题)。

当然,我可以 ping 远程主机,但我认为这不会真正给我我正在寻找的那种统计数据。一方面,如果服务器隐藏在 NAT 后面,我可能会 ping 路由器。

0 投票
7 回答
5806 浏览

linux - 如何丢弃原始套接字中的传入数据包?

我正在 Linux 下编写一个 C/C++ 应用程序,它从原始套接字(用于 ICMP 数据包)读取数据。问题:有没有办法丢弃仍在套接字上排队的所有数据?

问题是睡了一会儿后,socket上有我不感兴趣的数据排队;所以最好只是告诉套接字“忘记你现在缓冲的所有数据”,这样如果我进入一个 select()/recvfrom() 循环,我只会得到最近收到的数据。

有没有比先进入单独的 poll()/recvfrom() 循环更好的方法?可能是一些套接字 API 调用?便携,甚至?:-)

0 投票
5 回答
1533 浏览

python - 我惊呆了:python 和套接字 + 线程的奇怪问题

我有一个作为 http-server 的 python 脚本:http: //paste2.org/p/89701,当它针对 ApacheBench (ab) 进行基准测试时,并发级别(-c 开关)低于或等于该值我在源代码中的 socket.listen()-call 中指定了一切正常,但是一旦将 apache bench 中的并发级别置于 socket.listen()-call 中的值之上,性能就会下降,例如:

两次调用之间的代码没有任何变化,我不知道出了什么问题——这个问题已经有一天了。另请注意:无论 socket.listen() 设置为什么或 apache 中的并发(-c 开关)设置为什么,相同代码的多路复用版本(我编写以与线程版本进行比较)都可以正常工作。

我在 IRC/python 文档上花了一天时间,在 comp.lang.python 和我的博客上发布 - 我找不到任何人甚至知道可能出了什么问题。帮我!

0 投票
4 回答
7016 浏览

python - 是否可以在 Twisted 中的套接字上设置超时?

我意识到我可能只是愚蠢并且错过了一些重要而重要的事情,但我无法弄清楚如何使用reactor.listenUDP指定扭曲的超时。我的目标是能够指定超时,并且在所述时间之后,如果 DatagramProtocol.datagramReceived 没有被执行,让它执行一个回调或者我可以用来调用 reactor.stop() 的东西。任何帮助或建议表示赞赏。谢谢

0 投票
2 回答
4535 浏览

c# - UdpClient,在 Send() 之后的 Receive() 不起作用?

考虑以下代码:

虽然根据 WireShark(网络嗅探器)的说法,远程主机确实回复了数据,但这里的应用程序只是永远等待数据......由于某种原因它没有收到来自远程主机的回答。

有任何想法吗?

0 投票
1 回答
2809 浏览

python - 樱桃不关闭套接字

我正在使用cherrypy 作为网络服务器。它为我的应用程序提供了良好的性能,但它存在一个非常大的问题。几个小时后,cherrypy 崩溃,说明由于打开的文件太多,它无法创建套接字:

我试图弄清楚发生了什么。我的应用程序没有打开任何文件或任何套接字等。我的文件只打开了几个 berkeley dbs。我进一步调查了这个问题。我在 /proc/4536/fd/ 中看到了我的cherrypy 进程使用的文件描述符,ID 为 4536 所有套接字都处于 CLOSE_WAIT 状态。我使用以下命令获得了此信息:

CLOSE_WAIT 状态意味着远程客户端已经关闭了连接。为什么cherrypy然后不关闭套接字并释放文件描述符?我能做些什么来解决这个问题?

我尝试玩以下游戏:

我认为这会将随时打开的套接字数量限制为 10,但它根本没有效果。这是我设置的唯一配置,因此,其余配置保持其默认值。

有人可以对此有所了解吗?你认为它是cherrypy中的一个错误吗?我该如何解决?有没有办法自己关闭这些套接字?

以下是我的系统信息:

CherryPy-3.1.0

蟒蛇2.3.4

红帽企业 Linux ES 第 4 版(Nahant 更新 7)

提前致谢!

0 投票
1 回答
3652 浏览

java - Java RMI 在租约到期后不关闭套接字

我启用 RMI 的应用程序似乎正在泄漏套接字。我有一个通过 RMI 提供服务的 Java 应用程序。它使用在 Linux 上运行的 Java SE 1.6 RMI 实现。我观察到的问题是,如果客户端使用注册表获取对我的远程对象的引用,然后突然断开连接(断电、拔掉电缆等),服务器会保持套接字打开。我希望 RMI 实现在客户端的租约到期后进行清理,但这并没有发生。在服务器上,unreferenced()当租约到期时调用我的远程对象的方法,但套接字在 netstat 中无限期地处于“ESTABLISHED”状态。

由于我们无法强制客户端执行任何特定行为,因此几天后,我们的 Linux 发行版中的打开文件描述符达到了默认限制 1024,导致服务器无法打开任何新的套接字或文件。我考虑过 TCP keepalives,但由于 RMI 正在抽象出网络层,所以在建立连接后我无法访问实际的服务器套接字。

有没有办法强制 RMI 层清理绑定到具有过期租约的客户端连接的套接字?

更新:我使用的解决方案类似于选择的答案,但使用了不同的方法。我使用了一个自定义套接字工厂,然后将 createServerSocket() 返回的 ServerSocket 实例包装在一个透明包装器中,该包装器传递所有方法,除了 accept()。在 accpet 方法中,keepalives 在套接字返回之前启用。

0 投票
3 回答
5521 浏览

android - How to create Raw socket in Android?

Has anybody tried creating RawSocket in Android and have succeeded ?

0 投票
3 回答
16047 浏览

c++ - 如何在 C 中限制套接字连接的带宽?

我正在使用 BSD 套接字编写客户端-服务器应用程序。它需要在后台运行,不断传输数据,但不能占用正常使用的网络接口带宽。根据接口的速度,我需要将此连接限制到某个最大传输速率。

以编程方式实现这一目标的最佳方法是什么?