问题标签 [serversocket]

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

java - 查找可能的 ServerSockets 列表

我想编写一个涉及网络客户端-服务器选项的游戏。

为此,我需要能够获取在其计算机上托管服务器的所有人的列表,但 Socket 类需要计算机的名称。是否有可能获得此列表,如果可以,那么如何获得?

非常感谢你

0 投票
2 回答
1970 浏览

windows - Windows posix 套接字性能

我正在寻找有关 Windows 网络编程的信息。主要是如何获得单个可执行文件来应对 1000 个连接。

我们在 unix 上使用 select() FD_ISSET 等,这非常快。在 Windows 上,这些 API 很差。FD_SET 慢很多,但即使解决这个问题,Windows 也比 HPUX 慢很多。

我正在寻找一个我可以使用的 win32 API 调用,而不是不需要太多 CPU/时间的 select() 调用。目前我们在 select() 中花费了 50% 的时间(和 CPU),而在 unix 上花费的时间在 send() 和 recv() 中,这是我所期望的。

谢谢尼尔

0 投票
6 回答
1860 浏览

tcp - TcpListener 停止接受或接受断开的连接

我们目前在 Windows 上运行的自行编写的服务器应用程序遇到问题(发生在不同版本上)。服务器侦听 TCP 端口,接受连接,交换一些数据,然后再次关闭连接。大约有 100 个客户端不时连接。

有时服务器停止工作:日志文件显示连接仍然​​被接受,但在第一次读取尝试时发生套接字错误(10054 - 对等连接重置)。我认为这不是客户问题,因为它突然停止对所有客户工作。

现在我们发现,同样的问题出现在我们的旧服务器软件上,甚至是用另一种编程语言编写的。所以它似乎不是我们程序中的错误 - 我认为它必须是某种操作系统/防火墙问题?当然,防火墙已被停用,这还没有解决问题。

有什么想法可以研究吗?Wireshark 日志将很快跟进。

日志摘录(时间戳、线程 ID、消息)

您可以看到异常几乎在连接被接受的同时发生,在这种情况下,客户端会在几秒钟后重新连接。

0 投票
1 回答
2142 浏览

android - Android - BitmapFactory.decodeByteArray 返回 null

我正在尝试使用套接字连接将图像从 pc 传输到 android。我能够从电脑接收数据到手机,但是当我通过byte[]to时BitmapFactory,它返回 null。有时它会返回图像,但并非总是如此。

图像大小为40054 bytes。我2048 bytes一次收到,因此创建了保存byte数据的小型数据池(缓冲区)。收到完整数据后,我将其传递给BitmapFactory. 这是我的代码:

计算

我也尝试一次读取完整的 40054 字节,但这也没有奏效。这是代码:

最后也检查了,decodeStream但结果是一样的。

知道我在哪里做错了吗?

谢谢

0 投票
2 回答
257 浏览

java - 从 java ServerSocket 到 iphone 的网络问题(仅在 3g 模式下)

我遇到了奇怪的行为:

我有一个基于 java ServerSocket 的服务器,它服务于从 iPhone 设备发送的 TCP 请求。我注意到当我使用通过 wi-fi 连接的 iPhone 时,网络没有问题。iphone打开一个连接,然后按照它应该的方式从流中写入和读取,没有明显的延迟。到现在为止还挺好。但是,使用 3g 时,从发送第一条消息到响应完全返回,我经历了 1.5 秒的延迟。似乎在服务器将消息刷新到套接字之后立即读取消息的第一个字节,但消息的其余部分被延迟了大约一秒钟(!)。

我通过在 iphone 端打印缓冲区大小和在服务器端使用wireshark 监控网络来验证这种网络行为。 Wireshark 也显示了这一点- 第一个字节以 1 字节的消息大小发送(它始终为 0 BTW),其余消息随后以一个或多个大消息(约 1300 字节)发送。

消息由一个 8 字节的标头(2 个整数 - 类型和大小)和该大小的正文组成。

真正奇怪的是,在 c++ 中编写使用相同协议的类似服务器(使用 poco 服务器)运行良好。

我使用套接字的 DataOutputStream 使用 2 个 writeInt 指令和一个写入主体的 write(byte[]) 来写入标头。然后我刷新流。

有谁知道是否有一个套接字选项(在java中)会导致这种行为?

任何帮助将不胜感激。

0 投票
1 回答
1745 浏览

java - 如何检测断开连接事件

可能重复:
Java:如何检测远程端套接字关闭?

我正在使用带有 Socket 和 ServerSocket 的 java 编写一个小程序。我有一个服务器和一些客户端,当用户(客户端)关闭窗口时,客户端和服务器之间的连接将被关闭。

我的问题在服务器上,我无法检测到关闭事件。谁能帮我。

我可以在关闭连接之前从客户端向服务器发送消息以通知此事件。但是如果用户端进程来自 tast manager (javaw.exe),这个解决方案将是不可能的。

0 投票
0 回答
293 浏览

java - 无法从 Java 绑定到 Flex Serversocket

我正在尝试通过 serversocket API 将基于 java 的 android 应用程序连接到 flex (AIR) 应用程序,但在连接时总是让 i 超时。

这是我的弹性代码:

我在端口 2000 连接到 127.0.0.1

Java端:

}

错误:

05-24 12:21:24.043: WARN/System.err(28797): java.net.SocketTimeoutException: 传输端点未连接

这是一些安全沙盒问题吗?设备和 AIR 应用程序位于同一本地网络中。

0 投票
0 回答
545 浏览

android - ServerSocket 在 Android 上不接受

我正在寻找其他人是否有同样的问题,或者可能解决我的问题。

事实证明,我的 Evo 库存设备上不能有任何形式的 ServerSocket 来接受连接。最近我有一个 ServerSocket 设置,我尝试使用本地主机通过电话访问它,但没有成功。我以前为我的应用程序尝试过一次。我尝试过使用 3G 和 WiFi。我主要在我的电脑和手机之间进行通信,但这个实例只是让我的手机与自己通信。在我之前的尝试中,我的手机可以很好地联系我的电脑,但反过来就不行了。我已经在我的手机上尝试过 DatagramSocket、ServerSocket、MulticastSocket,但无论是来自计算机还是自身,它都无法接收到任何数据。我有互联网权限,我什至有所有的多播权限。我在这里缺少什么吗?是否有可能完全阻止股票 Evo 无论如何接收连接?

0 投票
1 回答
245 浏览

apache-flex - 如果我的应用在 AIR < 2.5 的版本上运行,它可以使用 ServerSocket 功能吗?

在我们的 AIR 应用程序中,我们使用类ServerSocket来监听特定端口上的连接。根据文档,这可以从 AIR 2.0 开始使用。为了表现得像服务器,我们需要监听的事件是ServerSocketConnectEvent,从 AIR 2.0 开始也可以使用。网上有几个例子,教程等。

问题是前一个类在 Flex SDK 4.0 中可用,而事件本身仅从 Flex SDK 4.1 开始存在。这意味着我们的运行时需要为 AIR 2.5 或更高版本。在我们的目标机器(Linux Red Hat Enterprise Linux Server 5.5 版)上,我们只能安装 AIR 2.0(对 glibc 的依赖存在问题,因此我们无法升级到 AIR 2.5)。

当他们说所有这些功能自 AIR 2.0 起可用时,这些发布文档和教程是否有任何错误?我的印象是,作为服务器工作、侦听套接字的能力仅从 2.5 开始可用。

如果是这样,即使我们的运行时是 2.0,我们是否可以从这些新功能中受益?即在我们的应用程序中嵌入ServerSocketConnectEvent来自 AIR SDK 2.5 的那些 SWC ( ) ?

0 投票
4 回答
16439 浏览

java - 使用服务器套接字后如何关闭端口

在我的应用程序中,我创建了一个ServerSocket带有一些端口的实例。完成后,我关闭了套接字,但是当我尝试ServerSocket在同一个端口上新建一个时,它会抛出:

如果我ServerSocket使用不同的端口创建它,那么它可以工作。

ServerSocket.isClosed也返回真

问题是什么?