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

java - 在 Java 中使用套接字的 HTTP 1.1 持久连接

假设我有一个 java 程序,它使用 HTTP 1.1 在服务器上发出 HTTP 请求并且不关闭连接。我提出一个请求,并读取从绑定到套接字的输入流返回的所有数据。但是,在发出第二个请求时,我没有得到服务器的响应(或者流有问题 - 它不再提供任何输入)。如果我按顺序发出请求(请求,请求,读取)它工作正常,但(请求,读取,请求,读取)没有。

有人可以对为什么会发生这种情况有所了解吗?(代码片段如下)。无论我做什么,第二个读取循环的 isr_reader.read() 只返回-1。

对问题的回答:是的,我收到了来自服务器的分块响应。由于外部限制,我正在使用原始套接字。

为代码混乱道歉 - 我正在从内存中重写它,似乎引入了一些错误。

所以共识是我必须要么做(请求,请求,读取)并让服务器在我结束时关闭流,或者,如果我做(请求,读取,请求,读取)在我结束之前停止流,以便流不会关闭。

0 投票
6 回答
9098 浏览

java - 在 Java 中检测无法访问的主机的最快方法是什么?

我想要boolean isReachable(String host, int port)在以下条件下通过以下 JUnit 测试的最快、最准确的函数。超时值由 JUnit 测试本身指定,并且可能被视为“无法访问”。

请注意:所有答案必须与平台无关。这意味着这InetAddress.isReachable(int timeout)不起作用,因为它依赖端口7在 Windows 上执行 ping(ICMP ping 在 Windows 上是一个未记录的功能),并且此端口在此设置中被阻止。

局域网设置:

  • thisMachine( 192.168.0.100)
  • otherMachine( 192.168.0.200)
  • 没有机器被调用noMachine或没有 IP 192.168.0.222(总是无法访问)
  • 两台机器都在端口上运行 Apache Tomcat 8080;所有其他端口都无法访问(包括 port 7
  • example.com( 208.77.188.166) 在端口上运行网络服务器,80并且仅当 LAN 连接到 Internet 时才可访问

有时,LAN 与 Internet 断开连接,在这种情况下,只能访问由 IP 地址调用的本地计算机(所有其他计算机都无法访问;没有 DNS)。

所有测试都在thisMachine.

以下测试仅在 LAN与 Internet断开连接时运行。

以下测试仅在 LAN连接到 Internet 时运行。

0 投票
4 回答
2766 浏览

c# - 我无法通过 Internet 连接到我的服务器

我可以在本地计算机上运行服务器并在同一台计算机上连接到它,但是当我尝试通过 Internet 从另一台计算机连接到它时,我的服务器上没有活动迹象,也没有来自服务器的响应在我正在测试它的计算机上。我试过 XP 和 Vista,关闭防火墙,打开端口,以管理员身份运行;没有任何工作。:(

这是我用来接受传入连接的代码:

p>

0 投票
3 回答
810 浏览

java - java连接到jabber

我需要使用什么类型的流通过 tcp 套接字向 jabber 写入连接请求消息。我正在写一个 xml 格式的字符串。它应该与默认套接字流或数据输出流一起使用,但它没有。

0 投票
7 回答
9923 浏览

perl - 如何在 Perl 中使用原始套接字?

您如何在 Perl 中获得原始套接字,那么构建用于它的数据包的最佳方法是什么?

0 投票
6 回答
8997 浏览

ruby - 如何使用 Ruby 找到免费的 TCP 服务器端口?

我正在尝试创建一个一次性 HTTP 服务器来处理单个回调,并且需要帮助以在 Ruby 中找到一个免费的 TCP 端口。

这是我正在做的事情的骨架:

(它将标准输入回显到第一个连接,然后死掉。)

我怎样才能自动找到一个空闲端口来监听?

这似乎是在远程服务器上启动作业的唯一方法,然后使用唯一的作业 ID 进行回调。然后可以查询此作业 ID 以获取状态信息。为什么最初的设计师在安排工作时不能只返回工作 ID,我永远不会知道。不能使用单个端口,因为可能会与多个回调发生冲突;这样,端口仅使用 +- 5 秒。

0 投票
2 回答
11247 浏览

c# - 是否可以在 Socket 和 TcpClient 对象之间进行转换?

这是另一个 C#/.NET 问题,仅基于好奇而不是迫切需要...

如果你有一个Socket实例并且你想将它包装在更高级别的TcpClient类中,这可能吗?你会怎么做?

相反,如果您有 的实例TcpClient,是否有可能获得基础Socket

0 投票
3 回答
1345 浏览

python - 接收socket大小限制好不好?

我正在用 Python 编写一个程序,它将充当服务器并接受来自客户端的数据,对数据量施加硬性限制是个好主意,如果是,为什么?

更多信息:因此,某些聊天程序限制了每次发送(即每次用户按下发送)可以发送的文本量,所以问题归结为是否有正当理由,如果是,那是什么?

0 投票
6 回答
5830 浏览

c# - C#流式套接字,如何分隔消息?

标题有点长,不过...

我一直在查看这些示例,特别是关于将消息大小写入和读取到字节流的部分
http://doc.trolltech.com/4.4/network-fortuneclient-client-cpp.html
http:// /doc.trolltech.com/4.4/network-fortuneserver-server-cpp.html

但我似乎无法在 C# 中弄清楚。

这根本不工作。有人可以在正确的方向上轻推我吗?

0 投票
4 回答
50809 浏览

c - 如何使用 C 创建 TCP 套接字连接到预定义端口

我有一个非常简单的问题。我想测试一个特定的端口当前是否正在使用中。为此,我想将 TCP 套接字绑定到端口,如果连接被拒绝,则表示该端口正在使用中,如果不是,则表示该端口是空闲的。

有人可以告诉我如何用 C 编写 TCP 套接字代码吗?我在一个solaris平台上。

我知道它非常基本。但我感谢你的帮助。提前致谢。