问题标签 [tcp-ip]

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 回答
86 浏览

redirect - 如何使网络服务器上的文件指向 IP 地址

我希望能够将 www.mydomain.com/file.extenstion 输入到诸如 minecraft 和其他 tcp/ip 连接之类的东西中,它指向我的 IP 地址。

0 投票
1 回答
840 浏览

c# - 使用异步套接字方法时延迟

我正在使用 C#、.Net Framework 3.5 进行软件开发。我的应用程序一次通过 TCP/IP 连接到多个客户端并从中收集一些数据。客户数量非常高(超过 100 个)。在我的应用程序开发过程之前,我做了一些研究,发现我必须使用异步套接字实现来实现性能和可管理性方面。

现在看来还可以,但我目前正在寻找在向客户发送数据之前延迟的最佳方法。我的应用程序有时需要等待大约 2 秒才能发送特定数据。现在,我只是System.Threading.Thread.Sleep(2000);在异步发送方法之前放了一行代码。这是方便的方法还是有更好的方法?这个Sleep函数是阻塞了我的应用程序的主线程还是只阻塞了异步套接字所属的线程。

0 投票
1 回答
549 浏览

tcp-ip - 什么是网络编程

我已经在eclipse下使用java完成了一个程序,我已经将我的代码转换为.jar文件并继续将.jar文件转换为.exe文件,我什至创建了一个与我的.exe文件相关的安装程序。每次我使用该程序对数据进行编码时,所有数据都记录在我的 .exe 文件所在的文件夹中(到我的本地硬盘驱动器),程序运行良好。问题是,我的程序的概念不仅是在我的计算机(我们局域网中的一个工作站)上使用它,而且还将它部署到我们的局域网中,我可以在其中对来自我们的一台计算机的数据进行编码站(客户端)并将这些数据保存到我们服务器的硬盘上,而不是像我当前的程序那样保存到计算机站(客户端)硬盘上。我' 研究了如何从工作站实现数据编码并将数据保存到服务器硬盘的概念,目前我想出了TCP/IP编程和网络编程。我的问题是,我在正确的道路上吗?如果我继续使用 java 的这一部分,我会实现我的目标还是有任何其他方式来实现我的概念。我并不是真的要求任何人教我如何实现这个目标,我只是在问我是否走在正确的道路上(学习 TCP/IP 和网络编程)或者我是否应该学习 java 的其他部分来实现这个概念. 请考虑我的提问方式,我觉得自己很初级,老实说,我对 TCP/IP 编程以及 TCP/IP 是否是实现我的概念的正确研究主题知之甚少。希望有人能给我关于这个问题的提示。

0 投票
2 回答
14013 浏览

ruby - 如何在 Ruby 中建立启用 SSL 的 TCP/IP 连接

我需要与我的服务器建立 TCP 连接,该服务器具有我需要访问的启用 SSL 的端口。

我需要发送一个 XML 文件并从服务器获取响应。

在启用 SSL 之前,我能够使用下面提到的代码从服务器获取数据。

现在我有一个“certi.pfx”,我需要与它建立连接,发送 my_xml 数据并获得响应。如何才能做到这一点。

我还想知道我是否有“pem”和“key”文件,如何建立连接、发送 my_xml 数据并获得响应。

请帮忙。

0 投票
1 回答
21705 浏览

delphi - 如何测试网络设备的有效 RTSP 流?

我正在开发一个使用 VLC 媒体播放器插件通过 RTSP 流式传输视频/音频的项目。我想提供一个选项来扫描网络以查找 RTSP 摄像机。我确信这将包括查询所有网络设备的列表,以及测试端口 554。所有这些我都可以处理。但是,一旦我走到这一步,如何通过端口 554 测试设备以确保它是有效的 RTSP 摄像机?

我假设应该有一些东西Winsock能够做到这一点,但是我应该如何测试套接字连接并确保它是我可以连接的有效 RTSP 流?无论使用哪种方法,我都不必尝试通过 RTSP 连接到每个使用任何类型的身份验证,我正在寻找一种较低级别的方法来确定端口 554 是否实际上提供了 RTSP 流。

0 投票
1 回答
1689 浏览

c# - 从 TCP 客户端接收数据时出错

我编写了一个监听端口并接收一些数据包的应用程序,根据我的自定义协议,数据包是 49 字节到 1500 字节,我可以从数据包中的数据长度看出。我应该解释和处理 49 字节数据包和更大数据包中的数据的方式是不同的。

问题是,当我收到小于 1374 字节的数据包时,一切正常,但是当数据包长度变长时,我收到以下异常,并且我还丢失了数据的最后 4 个字节(我已经使用 1384 字节数据包进行了测试,我丢失最后 4 个字节)

引发的异常:索引超出范围。必须是非负数且小于集合的大小。参数名称:startIndex

每个 49 字节的数据包有 35 字节的数据,更大的数据包的数据长度是不确定的(因为压缩)。

我发现有时最后 4 个字节位于单独的“字节”和“结果”变量中,这意味着它们被视为新数据包,并且没有附加到它们所属的数据包上。

这是接收数据的代码:

根据 Greg Suggestion 和我的研究,我也尝试使用以下方法:

0 投票
2 回答
6248 浏览

delphi - TCP 客户端未收到来自 RTSP 服务器的响应

在 Delphi XE2 中,我使用该TTCPClient组件与 RTSP 服务器进行通信。经过反复试验,没有从服务器得到响应,我将项目切换为通过端口 80(而不是 RTSP 的 554)发送 HTTP 请求,并尝试向网站(特别是 www.google.com)发送请求。我仍然没有得到任何回应。

TTCPClient在主窗体 ( Form1) 上有一个名为的组件Client、一个名为 的TMemo控件Log、一个TEdit名为的控件txtHost和一个TBitBtn控件。以下是代码的相关部分:

连接到服务器

OnConnect 事件处理程序 (HTTP)

OnConnect 事件处理程序 (RTSP)

OnReceive 事件处理程序

OnError 事件处理程序

OnReceive事件永远不会被调用,我连接的任何服务器都没有返回任何内容。

我在这里做错了什么?

参考

这些是我引用的一些链接:

我正在使用的相机是Grandstream GXV3601LL

更新

我得出的结论是问题出在 RTSP 服务器上,并在 Grandstream 网站的论坛上提出了问题。该代码确实适用于其他服务器连接。

0 投票
2 回答
247 浏览

networking - 我如何强制 tcp 丢弃缓冲区中最旧的数据段并接受应用程序在 NS2 中写入的新数据

我正在尝试调整 TCP 以在实时通信中正常工作。为此,规范之一是强制 TCP 接受应用程序写入的新数据,即使缓冲区已满,这也会使 TCP 有时“不可靠”。这样,应用程序写入调用永远不会被阻塞,并且发送方应用程序的时间不会被破坏。我认为NS2中必须有一个选项才能使它成为可能。那么,如何强制 TCP 丢弃缓冲区中最旧的数据段并接受应用程序在 NS2 中写入的新数据?

0 投票
3 回答
2822 浏览

python - 使用 selenium webdriver 的 tcp/ip 端口耗尽

我正在使用 selenium webdriver(用 Python 编写)进行一套测试。正在测试的页面包含一个表单,该表单根据在其中一个选择框中选择的值更改其显示字段。这个选择框有大约 250 个选项。我有一个测试(通过鼻子运行,尽管这可能无关紧要),它遍历选择框中的所有选项,验证表单是否为每个选定的选项显示了正确的字段。

问题在于,对于每个选项,它都通过 selenium 调用:

  • 单击以选择选项
  • 7 个字段的 find_element 和 is_displayed
  • 选择框中项目的 find_elements
  • 选择框中每个选项的 get_attribute 和文本

因此,在大约 10 或 15 分钟内,对运行测试的 webdriver 服务器产生了(大约)250 * (7 * 2 + 1 + 2 * 250) 或 128,750 个不同的请求。在某些情况下,这会导致运行测试的机器上的客户端端口耗尽。这一切都是通过一个测试框架运行的,该框架抽象出诸如如何解析选择框、何时创建新页面对象以及其他一些内容,因此测试代码中的优化要么意味着将所有内容都搞砸,要么扔掉这个测试的框架并手动完成所有事情(为了我们测试代码的可维护性,这是一个坏主意)。

我对解决方案的一些想法是:

  • 试图以某种方式汇集或重用与 webdriver 服务器的连接
  • 以某种方式调整urllib2httplib在运行时的配置,以便由 selenium 超时打开的连接或更快地被杀死
  • 系统独立(或至少可用于所有具有 OS 开关或类似系统的系统)机制,用于主动跟踪和关闭 selenium 打开的端口

正如我上面提到的,我无法调整页面的解析或处理方式,但我确实可以控制子类化/调整WebDriverRemoteConnection任何我喜欢的方式。有没有人对如何处理上述任何想法或我没有提出的任何想法有任何建议?

0 投票
1 回答
2319 浏览

java - 处理 TCP/IP 套接字上的多个请求

在 Java TCP/IP 套接字上处理多个请求是否很容易。只需接受一条消息并生成一个线程。接受另一条消息并产生另一个线程。问题是一旦你开始产生线程,事情就会变得更加不确定。假设您有 10 个客户端,其中一个客户端不断发出请求,另外 9 个客户端以 10% 的超活跃客户端发送请求,发现更难查看。

您可以处理此问题的一种方法是在您的服务器中拥有一个信号量的哈希图,其中每个客户端都有一个相应的信号量。在处理任何客户端的请求之前,您可以让它通过其信号量并配置信号量,以便每个客户端在任何时候只能有一定数量的请求。

在这个阶段,我想是的,但有更好的方法或图书馆可以做到这一点吗?