问题标签 [java-server]

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

java - Android - Java 服务器还是 Servlet?

我正在为大学的一个项目创建一个 Android 应用程序。

我将在大学服务器上托管几个数据库(我们有一个 Web 开发服务器)。

我打算创建一个 Java 服务器,但是,由于大学的防火墙和其他安全机制,当托管在大学上时,不允许远程连接(来自智能手机)。我正在学习使用 Java 进行 Web 开发的整个过程。

我希望能够使用 Web 服务器来处理来自手机应用程序的请求,从数据库中获取和操作数据,然后将回复发送回手机。

我可以用 servlet 做到这一点吗?并将其托管在 Web 开发服务器上?

0 投票
1 回答
371 浏览

java - 在服务器上运行的 jax-rs 代码

我有一个使用 RESTFul 的代码:

我的问题是如何从浏览器运行这段代码?我在 Eclipse 中编写了这段代码,并想从浏览器中运行它。我怎样才能做到这一点?谢谢。

0 投票
3 回答
3672 浏览

java - 尝试通过 ant 脚本运行 Java 服务器时无法分配请求的地址

我必须通过 ant 任务执行已编译的 Java 服务器以进行分配,以便我可以为其构建客户端。我没有服务器的代码,但它应该在启动后在 localhost 的 8181 端口上运行。它可以在 Windows 和其他 linux 机器上运行,但我无法在这台机器上运行(crunchbang)。这是我得到的错误:

我尝试过的事情:

  • 检查是否有另一台服务器在该端口上运行
  • 以 su 运行它
0 投票
1 回答
92 浏览

java - 克服服务器程序中的阻塞写入

对于冗长的文字墙,我提前道歉。

我正在写一个游戏服务器。基本上有线程来接受连接,每个玩家都有单独的线程,以及处理所有更新的线程。每个单独的播放器线程的唯一职责是向实际客户端读取和写入数据包。请记住,所有 I/O 都是使用 good ol'java.io包完成的。

无论如何,当我写完一些内容时,我决定我要进行某种压力测试。所以我向我的一个朋友发送了一个 bot flooder 程序。该程序将假玩家快速连接到服务器。与其在本地运行它,我认为如果连接不是本地的,它会更加真实。我从测试中发现,玩家更新周期时间非常好,除了一旦连接了大约 200 名玩家,周期时间就会开始急剧增加(我们所说的从 15 毫秒到有时超过 9000毫秒))。起初,我认为它与接受者线程有某种关联,因为我注意到当周期变慢时,我收到“玩家已从...连接”消息的频率较低。但是,在我决定测量更新周期的各个步骤所花费的时间后,我发现这不是原因。瓶颈在于播放器更新。在我滚动到播放器更新方法的最底部后,我立即意识到了原因。

问题是在每次播放器更新结束时,都会发送更新数据包。大的,有时是数 KB 大小的数据包在构建后通过套接字的输出流发送。正如你们许多人所知,写入数据包是一个阻塞操作。而这种阻塞是导致周期时间看似随机峰值的原因。一旦有几百个玩家连接,服务器就会尝试更新所有这些玩家。但有时,其中一个连接会有点慢。因此,服务器将继续处理玩家,直到它尝试处理通过慢速套接字连接的玩家。一旦它构造了更新包,它就会尝试发送它。但是,由于套接字速度较慢,发送会阻塞很长时间。当发送操作被阻塞时,其他玩家都没有更新。因此,周期有时会花费极长的时间。

现在,我有点纠结于如何解决这个问题。理想的情况是让服务器构造数据包并将数据包交给单个玩家线程并让它发送它(并愉快地阻塞在它自己的小线程中)。当更新数据包将被构建时,服务器线程将存储更新数据包,并且可能会引发一些标志,表明数据包已构建。这听起来不错,但问题是很多时候,单个播放器线程都陷入了自己的阻塞操作中。播放器线程正在阻塞,因为它正在等待接收数据包。所以更新包一旦被读阻塞完就会被写入,但我担心更新包会在它实际构建后发送,这会让播放器看起来很滞后。

所以这里是我向你们提出建议的时候。你会如何处理这个问题?有人推荐我使用 NIO,但这需要我重写大部分代码,所以我宁愿用尽我的可能性,因为我采取了不同的路线。

0 投票
1 回答
450 浏览

java - java中的多个服务器TCP

我正在编写一个网络多人游戏,玩家使用自己的客户端和服务器处理所有数据处理......

我已经用一台服务器完成了游戏的编写。

我想要做的是,我将拥有一个主服务器,它将发送有关不同游戏房间的信息,玩家将能够连接到他们想要的游戏房间。

我的想法是,如果玩家单击设置新游戏房间,客户端将告诉服务器设置新游戏,这将创建一个新服务器并将有关该服务器的信息添加到主服务器。

我将辅助服务器保留为ArrayList...

当我这样做时,它第一次启动了一个新服务器,但它永远不会进入打印到控制台的状态。

请帮我从主服务器创建新服务器:)

0 投票
1 回答
237 浏览

java - Dart 游戏 Android 应用程序和 Java 服务器保持疼痛

我的问题不一定是关于如何做到这一点 - 我真的很想知道从哪里开始。我用 Java 编写了一个跟踪飞镖游戏的程序。我有一个核心DartGame类和继承它的不同游戏的类。从那里它可以跟踪玩家,轮到谁,当前得分等。现在它工作得很好,我想做的是把它变成一个 Android 应用程序。我的计算机上有一个服务器程序,可以链接正在运行的应用程序。我不想要一个可以在任何地方访问的全局服务器,因为我不想把钱花在 VPN 服务器上,所以服务器程序只能在我的 PC 上运行。类似类型的服务器的一个示例就像用于 AndroMouse 的服务器,它允许您使用 Android 设备控制 PC 上的光标。

从设备连接到 PC 的最佳方式是什么?我不确定它是使用 MAC 地址还是路由器上的 WIFI,甚至蓝牙是一个选项。我对 Android 不是很熟悉,但我认为会有某种 Server/ServerSocket 连接,但这需要一个 IP 地址,我不确定要使用哪一个。是否像使用路由器的本地 IP 一样简单?就像我说的我会自己学习如何做,我只想知道在我花一大笔钱买 Android 书籍之前我需要学习什么。提前致谢。

0 投票
1 回答
1228 浏览

java - 无法通过 servlet 更新 mysql 数据库

我编写了一个 servlet 文件SignUp.java和一个帮助文件Updater.java。SignUp 从用户填写的表单中收集用户信息。然后它将信息发送到 Updater,以便 Updater 使用该信息更新数据库中的表。但是当我填写表格并单击提交时,没有任何变化。奇怪的是,当我编写一个测试文件并用它为更新程序提供一些虚拟值时,表格被这些虚拟值更新了。-
注册.java

InfoHolder 只是保存信息。

更新程序.java


测试.java

更新程序类文件不断抛出 - java.lang.ClassNotFoundException: com.mysql.jdbc.Driver。但是当我从终端运行测试类文件时,相同的 Updater 类运行顺利。我的CLASSPATH变量

是否有问题: 它有这个值 - .:/usr/share/java/mysql.jar:/usr/share/java/mysql-connector-java-5.1.16.jar:/usr/lib /tomcat6/lib/servlet-api.jar:类。 请帮忙。

0 投票
1 回答
538 浏览

hibernate - java - 如何使应用程序与Java Web服务器上的应用程序同步离线条目?

**> 我需要使用java技术制作web系统,但考虑到

互联网断开连接问题。我还需要制作该系统的桌面版本......用户可以在其中输入系统。我的要求是,如果用户在工作日结束时单击按钮或执行任何类型的功能,并且用户在过去一天所做的所有条目都应在线更新 Web 系统。用户不应在网络系统上再次输入。**

我不知道如何使用 java 技术来实现这个功能......

我在开发这个 Web 系统时使用了 Java Hibernate 和 Java Vaadin 框架。

请帮助我。提前致谢。:)

0 投票
1 回答
2471 浏览

java - 在servlet java中将字符串转换为Mysql时间戳

嗨,我正在使用 apache servlet 中的 get 方法传递我的日期时间字符串,它就像这样

我正在使用

获取日期值.....

下面给出了我将字符串转换为时间戳的java代码

但它显示这样的错误

我做错了什么请帮助我.......

0 投票
1 回答
458 浏览

java - java QuickServer 对象处理程序

我最近遇到了一个用于 java 多线程服务器的开源库http://www.quickserver.org/。第一个使用 ClientCommandHandler 的示例 EchoServer 运行良好。但是它只适用于字符串。在我的特定应用程序中,我想使用一个特殊的自定义对象在服务器和客户端之间交换消息。

我尝试了以下方法:

...并将其设置为对象处理程序...

所以我试图做的只是用对象处理程序完全替换命令处理程序。我收到以下错误:

所以我的问题。是否可以在根本不定义命令处理程序的情况下用对象处理程序替换命令处理程序?如果不是,实现对象处理程序的正确方法是什么?