问题标签 [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 投票
4 回答
1346 浏览

flash - 最佳 Flash 音频/视频 + 交互服务器?

我正在寻找有关 Flash 实时服务器的建议。目前,我们使用 Moock 的UnityRed5的组合,但存在一些问题。首先,我们正在迁移到 AS3,而 Unity 仅支持 AS2。其次,Red5 对我们来说非常不稳定,我们更喜欢更稳定的东西。我们不能使用官方的 Flash Media Server,它有点超出我们的价格范围(单个许可证的起价为 4,500 美元)。

到目前为止,我已经找到了两台看起来可以满足我需求的服务器,ElectroServerWowza Media Server。有没有人有这方面的经验,或者有其他服务器可以推荐吗?我正在寻找的主要功能:

  1. 稳定的
  2. 客户端库中的 AS3 支持
  3. 可以扩展服务器端(使用 Java 或其他语言)
  4. 支持来自 Flash 客户端(例如网络摄像头)的实时音频/视频
  5. (不是必需的,但非常有帮助)当除 HTTP 或 HTTPS 之外的所有流量都被阻止时的某种通信方法。例如RTMPT(通过HTTP 的隧道RTMP)支持或类似的。
  6. 合理的性能,我想在不杀死服务器的情况下连接至少几百个用户。
0 投票
4 回答
5279 浏览

asp.net - .NET 中的 Tcp/Ip 套接字连接

对于我当前的项目,我需要通过 tcp/ip 套接字连接请求 XML 数据。为此,我正在使用 TcpClient 类:

现在,对于小的响应,这工作得很好而且花花公子。但是,当我开始接收更大的数据块时,数据似乎会以突发方式通过套接字连接推送。发生这种情况时,stream.Read 调用仅读取第一个突发,因此我错过了其余的响应。

处理这个问题的最佳方法是什么?最初我试图循环直到我有一个有效的 XML 文档,但我发现在 stream.Read 调用之间,底层流有时会被关闭,我会错过数据的最后一部分。

0 投票
9 回答
6188 浏览

c - 在 ansi c 中将套接字绑定到端口 80

当我尝试将端口 80 绑定到 c 中的套接字时,我总是收到错误消息,即我无权使用此端口。有没有简单的方法来获得这个许可?

0 投票
4 回答
23346 浏览

.net - 在.NET中保持活动套接字检查的最佳方法是什么?

我正在寻找一种在.NET 中进行保持活动检查的方法。该方案适用于 UDP 和 TCP。

目前在 TCP 中,我所做的是一侧连接,当没有数据要发送时,它每 X 秒发送一次保持活动状态。

我希望对方检查数据,如果在 X 秒内未收到,则引发事件左右。

我尝试做的一种方法是进行阻塞接收并将套接字的 RecieveTimeout 设置为 X 秒。但问题是每当超时发生时,套接字的 Receive 会抛出一个 SocketException 并且这一侧的套接字会关闭,这是正确的行为吗?为什么套接字在超时后关闭/死亡而不是继续?

检查是否有数据和睡眠是不可接受的(因为我可能在睡眠时接收数据滞后)。

那么解决这个问题的最佳方法是什么,为什么我在另一边描述的方法失败了?

0 投票
2 回答
3400 浏览

c++ - 为 WinSocks 和 *nix 创建一个非阻塞套接字

在 C/C++ 中,如何在 WinSocks 和 *nix 中将阻塞套接字转换为非阻塞套接字;这样 select() 才能正常工作。您可以将预处理器用于特定于平台的代码。

0 投票
4 回答
1244 浏览

c++ - 套接字错误的好资源?

在哪里可以找到所有类型的 bsd 样式套接字错误的列表?

0 投票
4 回答
5205 浏览

java - Java:是否可以通过 Object(In|Out)putStreams 在阻塞的 SocketChannel 上进行并发读写?

我在阻塞上创建了一个ObjectInputSteamand并试图同时读取和写入。我的代码是这样的:ObjectOutputStreamSocketChannel

问题是行 (B) 处的写入阻塞,直到行 (A) 处的读取完成(阻塞返回的对象SelectableChannel#blockingLock())。但是应用程序逻辑规定,在所有写入完成之前,读取不会完成,因此我们有一个有效的死锁。

SocketChanneljavadocs说支持并发读写。

当我尝试常规的 Socket 解决方案时,我没有遇到这样的问题:

但是,我无法利用FileChannel#transferTo(...)

0 投票
3 回答
3020 浏览

python - 用 Python 编写一个可靠的、完全有序的多播系统

我必须用 Python 从头开始​​编写一个可靠的、完全有序的多播系统。我不能使用任何外部库。我被允许使用中央音序器。

似乎有两种直接的方法:

  1. 编写一个高效的系统,为每个多播消息附加一个唯一的 id,为其接收到的消息 id 具有定序器多播序列号,并来回发送 ACK 和 NACK。
  2. 编写一个低效的泛洪系统,其中每个多播器只需重新​​发送它接收到的每条消息一次(除非它是由那个特定的多播器发送的。)

我被允许使用第二个选项,并且倾向于这样做。

我目前正在多播 UDP 消息(这似乎是唯一的选择),但这意味着某些消息可能会丢失。这意味着我必须能够唯一标识每个发送的 UDP 消息,以便可以根据 #2 重新发送它。我真的应该生成唯一的数字(例如使用发件人地址和计数器)并将它们打包到每个发送的 UDP 消息中吗?我该怎么做呢?以及如何在 Python 中接收单个 UDP 消息,而不是数据流(即socket.recv)?

0 投票
8 回答
67902 浏览

c++ - 关于套接字编程和多线程的面试问题

请任何人都可以告诉我问题,可以在以下主题的采访中提出

  • 套接字编程
  • 多线程

提前感谢所有提供时间的人

0 投票
4 回答
113366 浏览

python - 在 Python 中测试套接字连接

这个问题将扩展:在 Python 中打开套接字的最佳方法打开套接字
时,我如何测试它是否已建立,并且它没有超时,或者通常失败。

编辑:我试过这个:

但是即使该连接应该有效,也会调用警报功能。