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

c++ - 如何在 z/OS 上的 C++ 中使用 C 套接字 API

我在让 C 套接字 API 在 z/OS 上的 C++ 中正常工作时遇到问题。

虽然我包括sys/socket.h,但我仍然收到编译时错误,告诉我AF_INET未定义。

我是否遗漏了一些明显的东西,或者这是否与在 z/OS 上使我的问题变得更加复杂这一事实有关?

我发现有一个#ifdef我正在击中。显然 z/OS 并不高兴,除非我定义了我正在使用的套接字的“类型”:

现在,我个人不知道这_OE_SOCKETS实际上是为了什么,所以如果有任何 z/OS 套接字程序员在那里(你们三个),也许你可以给我一个关于这一切是如何工作的纲要?

测试应用

编译/链接输出:

检查 sys/sockets.h 确实包含我需要的定义,据我所知,它没有被任何#ifdef语句阻塞。

然而,我注意到它包含以下内容:

基本上封装了整个文件?不确定是否重要。

0 投票
4 回答
2828 浏览

c# - 通过同一个开放套接字进行异步多向服务器 - 客户端通信?

我有一个客户端-服务器应用程序,客户端在 Windows Mobile 6 设备上,用 C++ 编写,服务器在完整的 Windows 上,用 C# 编写。

最初,我只需要它从客户端向服务器发送消息,而服务器只发回它收到消息的确认。现在,我想对其进行更新,以便服务器实际上可以向客户端发送消息以请求数据。正如我目前设置的那样,客户端仅在将数据发送到服务器后才处于接收模式,这不允许服务器随时发送请求。我将不得不等待客户数据。我的第一个想法是使用单独的打开套接字在客户端上创建另一个线程,监听服务器请求......就像服务器已经拥有客户端一样。有没有办法在同一个线程中使用同一个套接字,随时向所有服务器发送请求?

你可以使用一些东西来WaitForMultipleObjects()传递一个接收缓冲区和一个告诉它有数据要发送的事件吗?

0 投票
3 回答
10733 浏览

ruby - Ruby中的反向DNS?

我所处的环境有很多尚未正确清点的计算机。基本上,没有人知道哪个 IP 对应哪个 MAC 地址和哪个主机名。所以我写了以下内容:

除了找不到反向 DNS 外,一切正常。

我得到的示例输出是这样的:

如果我这样做了,nslookup 10.26.6.12那么我会得到正确的反向 DNS,这表明我的机器正在查看 DNS 服务器。

我已经尝试过Socket.gethostbyname,,gethostbyaddr但它不起作用。

任何指导将不胜感激。

0 投票
1 回答
2261 浏览

flash - ActionScript 3.0 套接字无法重新连接

在连接超时后,我无法(通过 Socket 和 XMLSocket 类)连接到 TCP 侦听器。

我有一个需要维护与服务器的 TCP 连接的 flash 小程序。我已经使用计时器、乒乓球系统等实现了超时。但是,有一个问题。在调用 Socket.connect() 时,flash 播放器(9.0.115 和之前的许多其他马厩)通过 SYN 数据包发送 3 个连接请求,中间有一段时间。如果这些都没有得到回复(例如,因为服务器已关闭),我无法让小程序[尝试] 连接到服务器。曾经。也就是说,在小程序的生命周期内。

澄清和/或总结:

对于提供给 Socket.connect() 或 XMLSocket.connect() 的任何主机/端口对,如果调用失败,则在 Flash 小程序的生命周期内对任何其他 Socket(或 XMLSocket)实例的任何后续 connect() 调用都将主机/端口对被忽略。(至少据我所知,使用数据包嗅探器。)

我尝试过调用许多 Socket 方法、销毁和重新创建对象、使用 Socket 池以及我现在不记得的各种其他方法;一切都无济于事。

我目前的解决方案是通过 JavaScript 调用通知父网页并让它重新加载我的小程序。这不是一个很好的解决方案,我也不打算针对引起的问题实施解决方法,只是因为 Flash 无法正确处理套接字连接。

我一定错过了一些非常简单的东西。

有任何想法吗?

1:我知道你不能真正摧毁物体;我只是删除了对它们的所有引用并希望最好。在这种情况下,我没有尝试显式调用 GC。(尽管我认为我确实尝试将 Socket 放入 Array 并使用delete。)


是的,如果连接成功,它会按预期工作(即使稍后连接断开。)

触发这种情况的唯一事件是服务器根本没有响应的情况;就好像 Flash 将主机/端口组合标记为“离线”,并且在小程序的生命周期内不再向其发送任何数据包。

我怀疑主动拒绝连接(例如主机在线但未监听端口)不会导致这种情况。

我没有从 Socket 收到任何错误消息或任何其他类型的反馈。

当第一个失败时,您是否曾经多次调用 connect() 到同一个主机/端口对?你怎么知道第一个 connect() 失败了?在随后的 connect() 调用之前,你有没有做任何事情来重置套接字?

0 投票
16 回答
31058 浏览

java - 如何在 Java 中确定我的路由器/网关的 IP?

如何在 Java 中确定我的路由器/网关的 IP?我可以很容易地获得我的IP。我可以使用网站上的服务获取我的互联网 IP。但是我怎样才能确定我的网关的 IP 呢?

如果您知道自己的方式,这在 .NET 中有点容易。但是你如何在 Java 中做到这一点?

0 投票
4 回答
4505 浏览

firefox - Firefox 插件 - 套接字

我一直想要一种与服务器建立套接字连接并允许服务器操作页面 DOM 的方法。例如,这可以在股票报价页面中使用,因此服务器可以在新报价可用时推送它们。

我知道这是 HTTP 请求/响应协议的经典限制(功能?),但我认为这可以作为 Firefox 插件实现(跨浏览器兼容性对我的应用程序并不重要)。Java/Flash 解决方案是不可接受的,因为(据我所知)它们存在于一个盒子中并且不能与 DOM 交互。

谁能确认这是否在 Firefox 插件的能力范围内?有人已经创建了这个或类似的东西吗?

0 投票
4 回答
7079 浏览

sockets - Pascal 中的套接字

你如何在 Pascal 中使用网络套接字?

0 投票
3 回答
3025 浏览

java - 将Java Socket配置为在断开连接时快速失败?

我的服务器上有一个监听端口,我使用 Java 类和Socket接口连接到该端口,即

然后我在 autoflush 模式下抓取一个OutputStream, 用 a 装饰PrintWriter,我在笑——除非监听端口关闭。然后我得到

而且我似乎无法检测到程序中的问题 - 我尝试isConnected()在套接字上使用该方法,但它似乎不知道连接已关闭。

我想在下次尝试写入 Socket 时注意问题,以便我可以尝试重新连接并报告问题。

请问有什么建议吗?

谢谢大家

0 投票
3 回答
15752 浏览

unix - sendto的最大缓冲区长度?

如何获得可以传递给sendto(..)作为 UDP 端口打开的套接字调用的最大字节数?

0 投票
1 回答
247 浏览

sockets - 使用连接通知重新连接逻辑

假设我有一个需要与服务器建立持久连接的应用程序。如何实现连接/重新连接逻辑,这样我就不会浪费资源(功率/带宽),并且在连接出现/改善时我有快速的重新连接时间?如果我只使用连接通知,我可能会遇到与本地网络无关的问题。

如果你能给我看C#版本,那就太好了。