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

java - 如何让 Java 中的 SocketServer 阻止正在使用的端口?

这是我在这里的第一个问题,我将尝试提供尽可能多的信息。

我在我的 PC 上安装了 Apache 2.2 的本地安装。我默认绑定到端口 100(不要问我为什么)。当我运行 Apache 时,我无法创建端口为 100 的套接字服务器,因为该端口已在使用中。我想要做的是在我正在编写的 Java 服务器中复制此功能。

目前,我创建了一个这样的套接字服务器:

问题是,这不会阻止其他应用程序使用此端口。我可以运行我的 Java 应用程序的多个副本,甚至在此之后启动我的 Apache 服务器。我希望 java Server Socket 模仿 Apache 的行为并阻止其他应用程序绑定到所选端口。

我尝试使用谷歌,我唯一能找到的是这个http://www.dreamincode.net/forums/topic/124376-block-port/这意味着创建一个如上所示的套接字服务器应该阻止使用端口在其他应用程序中。

我使用的是 Windows 7 Ultimate-64bit、NetBeans IDE 6.9.1 和 Java 1.6.0_23。

感谢用户658991,

在客户端连接或除非我调用 ServerSocket.accept(); 之前,该端口似乎不会被阻塞。

0 投票
1 回答
327 浏览

actionscript-3 - AIR 应用程序无法启动 ServerSocket 然后发布

我有一个奇怪的问题,然后我在 Dev 模式下测试 AIR 应用程序 - 它创建了工作的 ServerSocket 对象。并正常充当服务器。如果我将其打包为 AIR 应用程序并安装在 Windows 上,它将停止工作 - 未在指定端口上创建服务器...

代码:svn checkout http://logmaster.googlecode.com/svn/trunk/

是沙盒问题吗?怎么解决……?或者可能是因为我使用的是生成的证书?

谢谢你的帮助。

0 投票
2 回答
1956 浏览

java - RMI exportObject 中的客户端套接字工厂?

如果您想为 RMI 使用自定义套接字(例如使用 SSL),在UnicastRemoteObject.exportObject(4)中,您需要指定客户端套接字工厂和服务器套接字工厂。但是对象的导出是在服务器端完成的。为什么需要客户端套接字工厂?

除非......它被序列化并被想要获得与该对象的连接的客户端使用?我发现这不太可能(尽管这可能是答案);(SSL) 对我来说,套接字工厂听起来不像是可序列化对象的经典示例,密钥库是本地的,诸如此类。

0 投票
2 回答
1844 浏览

java - 具有多个客户端的 Java SocketServer - StreamCorruptException

应用程序

我正在用 Java 编写一个客户端/服务器应用程序,它通过使用 ObjectStream 类通过套接字发送对象来进行通信。应用程序中的每个节点大致如下所示:

这里server变量是本节点监听client的套接字,变量是其他节点监听的套接字,以及本节点发送对象的套接字。

我用来将对象写入其中一个客户端套接字的代码如下所示:

我用来处理连接和从节点的服务器套接字读取对象的代码如下所示:

问题

我想我在这里的插座做错了什么。当每台服务器只连接到一个客户端时,一切正常。但是,当多个客户端与同一个服务器通信时,事情变得很糟糕,我从 ObjectInputStream 和其他奇怪的行为中得到了 StreamCorruptedException(放入一个 UpdateRequest 消息的实例,并取出一个 Integer(0) 的实例和一些异常,例如。)

我的直觉告诉我,这两个对象/字节流以某种方式混合在一起,这在尝试反序列化对象时会产生奇怪的结果。我的问题是:为什么会发生这种情况,也就是我做错了什么,我该如何解决?

0 投票
2 回答
1112 浏览

flash - 如何在 AIR ServerSocket 的服务器端有一个 XMLSocket?

我要使用 AIR 创建两个软件:服务器和客户端。AS3 和 AIR 都适用。

我想避免使用远程共享对象、使用 BlazeDS 或必须在中间设置 Java / Python / ... 服务器的大型架构。

为了避免必须在服务器端和客户端解析套接字数据,我考虑在客户端使用 XMLSocket:数据以 Flash 框架已经解析的方式到达。

但是,当我将此 XMLSocket 与 AIR ServerSocket 一起使用时,“connect”事件会在服务器端返回一个原始 Socket。所以我必须在服务器端手动管理 XML 数据。

有没有办法在服务器端也使用 XMLSocket 与客户端通信?一种将返回的 Socket 转换为 XMLSocket 的技巧?

如果有管理它的 AS3 库,我没有找到它。

谢谢!

0 投票
2 回答
469 浏览

python - 检测python中套接字的正常关闭

我正在尝试确定服务器套接字是否在 python 中正常关闭。

程序收到文件,如果在发送过程中发生错误,则应删除文件。

我知道您的第一个建议是让客户端发送文件的长度或一些终止数据,以让服务器知道文件传输已完成。
可悲的是,我无法更改客户端,它只是通过原始 tcp 转储文件,对此我无能为力。所以请不要,“但如果你能改变它”或“你的协议有缺陷”,我没有写协议,我将不得不处理它。

该脚本应该可以在 OSX 和 linux 上运行,所以 epoll 已经退出了。

有什么建议么?

我可以补充一点,我不在乎发生了什么错误,只是任何错误都会发生。

0 投票
4 回答
959 浏览

c# - 套接字编程:服务器

好的,所以我一直在尝试自学一些套接字编程。我为自己编写了一个带有异步服务器的小 C# 应用程序,我了解其中的大部分内容,除了以下内容:

所以服务器有一个监听连接的端口,然后当它接收到一个连接时,它会创建一个不同的套接字来进行通信。这就是我不明白的......当理论上客户端不知道为这个新连接选择了哪个端口时,客户端和服务器之间如何进行通信?

感谢您的所有回答

编辑:据我了解,侦听线程在默认端口上侦听,但是所有消息随后都在每个客户端的不同套接字上处理?

再次编辑:你们如何误解我的问题。我了解正常的套接字通信。我的问题是异步服务器的侦听套接字与连接套接字不同。IE。

  1. 服务器侦听默认端口
  2. 客户端尝试连接。
  3. 服务器接收请求。
  4. 然后服务器在客户端和服务器之间创建一个通信套接字并继续侦听默认端口。

我的问题是在最后一步。客户端现在如何知道如何在新套接字上进行通信?这是一些示例代码 http://msdn.microsoft.com/en-us/library/5w7b7x5f.aspx

0 投票
2 回答
1105 浏览

google-app-engine - Google App Engine、Amazon EC2 和套接字

据我所知,GAE不支持使用原始 TCP/IP 套接字,即java.net.ServerSocket. 还有其他我可以使用的知名云服务吗?例如Amazon EC2

我的客户端应用程序需要到服务器的永久 TCP 连接......

非常感谢斯滕

0 投票
1 回答
209 浏览

tomcat - Tomcat 和 java.net.ServerSockets

有什么可以阻止我java.net.ServerSocketsTomcat服务器上使用的吗?据我了解,Tomcat 主要用于基于 http 的通信 servlet,但也可以使用原始套接字,对吗?

问候, STeN

0 投票
1 回答
192 浏览

java - 关于Tomcat for Java Server 基于sockets的问题

我想知道我是否通过网络购买了 VPS 服务(基于 Linux)。
我是否需要安装 Tomcat 才能启动基于 Java 的服务器(套接字服务器)?如果是,我需要哪个版本,您能否给我一份在线指南的参考,了解如何在基于 Linux 的 VPS 上安装和运行东西。
谢谢