问题标签 [tcpsocket]

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 投票
0 回答
1858 浏览

ruby - Ruby TCPSocket - 无法建立连接,因为目标机器主动拒绝它

无法TCPSocket连接到TCPServer

客户

服务器

错误:

当连接到 IIS 正在监听的端口 80 时,TCPSocket 工作正常,所以我认为 TCPServer 示例有问题。

关闭防火墙没有帮助。此外 - 当我停止 IIS 并将 TCPServer 设置为端口 80 时,错误是相同的。

0 投票
1 回答
829 浏览

ruby - 一个 TCPSocket,两个线程

我需要为TCPSoket客户端实现一个监听循环,它不会阻止将数据发送到同一个套接字。

大概的结构是这样的:

这种结构一切都好吗?

我需要在这里实施两种策略:

  1. 响应 = 发送请求(请求数据)
  2. listener - 当传入的数据不是对我的请求的响应,而是我必须收听的异步数据时。
0 投票
1 回答
177 浏览

javascript - TCPSocket.send:缓冲区满时会发生什么?

从以下文档TCPSocket.send

  • 如果 send 返回true,则缓冲不到 64k 并且立即写入更多是安全的。

  • 如果 send 返回false,则缓冲了超过 64k 的数据,调用者可能希望等到触发了 drain 事件,然后再通过更多的 send 调用缓冲更多数据。

这告诉程序下一步最好做什么避免缓冲区溢出。

如果缓冲区已经满了怎么办?程序可以在发送数据之前检查缓冲区是否已满吗?

0 投票
0 回答
290 浏览

c - TCP recv 和接收缓冲

我的网络应用程序项目有问题。

这是我的主要结构的一部分:

这是处理recv返回值的函数

这是处理数据缓冲的函数:

这是处理 INT 变量的 recv 的函数:

我想最后一个是完全错误的。我说假设是因为我正在 localhost 中尝试应用程序并且很少收到部分数据..

在 riceviMsg() 我有这个疑问:

如果我发送 "ciao\0" ,在另一边接收哪个信首先收到的recv?"c" 还是 "\0" ?

谢谢大家:)

Ps:我想我会在将数据转换为字符串后发送数据的长度,我会使用riceviMsg()函数来处理它。我将删除 riceviLenght() 因为它完全错误。但现在我不知道 riceviMsg() 上的缓冲区是否正常工作:/

0 投票
2 回答
1968 浏览

c - 在 C 中使用 TCP_KEEPALIVE 识别 tcp 套接字上的网络关闭

我正在编写一个从 tcp 服务器接收数据的 tcp 客户端程序。当网络变坏(即网络中断)时,我无法关闭连接。

我使用 SO_KEEPALIVE 允许应用程序为套接字连接启用保持活动数据包。SO_KEEPALIVE 属性打开成功,但我无法修改 KeepAliveTime 的默认值(即 2 小时)

编辑 KeepAliveTime 的另一个可用选项是编辑注册表值,但我在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters位置找不到注册表项

以下代码检查并启用 SO_KEEPALIVE。

但我要求它在用户定义的时间(可能是 5 分钟左右)后断开套接字。请提出任何其他解决方案。

平台:Windows 7 Professional 上的 Visual C 2012

0 投票
1 回答
1575 浏览

python - Python:等待服务器套接字连接时运行循环

我有一个 LCD 用于显示我在 XBMC 上观看的电影的时间码,我想在没有播放任何内容时显示当前日期和小时。托管 LCD 的机器正在运行 python TCPSocketServer服务器,接收要从我的 XBMC 安装中显示的文本。问题是我必须保持活动的网络连接,这样 XBMC 才能通过套接字发送小时和日期,并且 LCD 可以显示它。在我看来,最好的办法是显示托管 LCD 的机器的日期,然后在套接字处于活动状态时切换到“时间码视图”。

是否有任何“pythonic”方式设置 TCPSocketServer 来计算循环以在等待连接时显示日期,然后更改其行为以计算通过套接字接收的数据?

提前谢谢了

0 投票
2 回答
655 浏览

java - 公共上的 Java TCP 套接字

我写了一个服务器和客户端 Java TCP 套接字,它在专用网络(192.168.2.x)上工作,但我不知道如何使它与公共 IP 一起工作。我想我应该在路由器中打开一个端口并使用我的服务器 ip 和这个端口来初始化客户端套接字!我试过了,但没有用。

在这里初始化套接字:

Socket clientSocket = new Socket(IP, PORT);

ServerSocket server = new ServerSocket(PORT);

0 投票
1 回答
254 浏览

c# - 使用大于 1 字节的缓冲区时来自服务器的不完整回复

我正在使用 TCP 套接字向服务器发送 XML 格式的消息。服务器以完整的消息响应(我已与 WireShark 核对过),但我在完成它时遇到了问题。当我使用大于 1 字节的缓冲区时,响应在消息末尾缺少缓冲区的剩余大小。当使用 1 字节缓冲区时,它适用于 99% 的情况。我认为这与StringBuilder我正在使用的有关,但我已经没有想法了。我也试过NetworkStreamand StreamSocket,但没有运气。任何帮助或回应将不胜感激。

0 投票
2 回答
7768 浏览

c++ - 通过 TCP 套接字接收可变大小的数据

我在通过(TCP)套接字传输数据时遇到了一个小问题。我在做什么的小背景:

我正在从 A 侧向 B 发送数据。发送的数据可以是可变长度,假设最大大小为 1096 字节。

在 B 上,由于我不知道预期的大小,我总是尝试接收 1096 字节:

但是,当我这样做时:我意识到 A 正在发送小块数据......比如说大约 80-90 个字节。在几次发送之后,B 将它们组合在一起,接收到的字节数为 1096。这显然是损坏的数据和地狱般的松动。

为了解决这个问题,我将数据分成两部分:标题和数据。

A面:

在 B 上,我首先接收标头并确定要接收的有效负载的大小:然后接收剩余的有效负载。

所以,对于每一个有有效载荷的发送,我最终都会调用接收两次。这对我有用,但我想知道是否有更好的方法来做到这一点?

0 投票
0 回答
436 浏览

audio-streaming - 在没有 RTSP 的情况下制作音频流

我正在尝试为音频流实现客户端/服务器系统。客户端应该询问文件,服务器应该发送它。然后,客户端应立即播放该文件。我已经阅读了一些基于 rtp 和 rtsp 协议的解决方案,但它们对于我的用例来说太复杂了。我想通过 TCP 套接字使用简单的文件传输,但客户端应该立即播放音频文件,而不是等待下载结束。这个解决方案可能吗?

这是我正在使用的代码。

服务器:

客户:

它仅适用于小 .wav,因此我认为该文件实际上并未在流媒体中播放,而是在下载后立即开始播放。如果文件大小在 1Mb 左右或以上,客户端会返回异常:

而服务器返回异常:

请帮忙?

环顾四周,我了解到我需要使用 HTTP 渐进式下载,但我没有找到任何使用 HTTP 渐进式下载的客户端/服务器示例实现。