使用ServerSocket和HTML Client上传文件。 陷入InputStream.read()

为了理解套接字编程的概念,我创建了一个服务器和一个客户端。 客户端将发送文件,服务器应将其保存在某个位置。 (即文件上传)。 服务器: package com.test.socket.server; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.ServerSocket; import java.net.Socket; public class WebServer { public static void main(String[] args) throws IOException { ServerSocket serverSocket = new ServerSocket(8081); Socket socket = serverSocket.accept(); System.out.println(“Received request”); InputStream inputStream = socket.getInputStream(); OutputStream out = new FileOutputStream(“yoyo.png”); System.out.println(“Reading….”); byte[] bytes = new […]

了解如何使用TheUnsafe进行memcpy

我阅读了有关TheUnsafe的内容,但我感到困惑的是,与C / C ++不同,我们必须计算出东西的偏移量,还有32位VM与64位VM,它们可能有也可能没有不同的指针大小取决于在特定的VM设置打开或关闭(同样,我假设数据的所有偏移实际上基于指针算法,这将影响他们)。 不幸的是,似乎有关如何使用TheUnsafe的所有内容仅仅来自一篇文章(恰好是第一篇),而其他所有文章都是从某种程度上粘贴的。 其中不存在很多,有些不清楚,因为作者显然不会说英语。 我的问题是: 如何使用TheUnsafe找到字段的偏移量+指向拥有该字段(或字段的字段,字段,字段的字段,字段的字段…)的实例的指针的偏移量 如何使用它来执行memcpy到另一个指针+偏移内存地址 考虑到数据的大小可能有几GB,并且考虑到堆不提供对数据对齐的直接控制,并且它可能肯定是碎片化的,因为: 1)我认为没有什么能阻止VM在offset + 10处分配field1而在offset sizeof(field1)+ 32处分配field2,是吗? 2)我还假设GC会移动大块数据,导致1GB大小的字段有时会碎片化。 那么我所描述的memcpy操作是否可行? 如果数据由于GC而碎片化,那么堆当然有一个指向下一个数据块的位置的指针,但是使用上述简单的过程似乎并没有涵盖这一点。 所以数据必须在堆外(这可能)工作吗? 如果是这样,如何使用TheUnsafe分配堆外数据,使这些数据作为一个实例的字段工作,当然一旦完成就释放分配的内存? 我鼓励任何不太了解这个问题的人询问他们需要知道的具体细节。 我还敦促人们不要回答,如果他们的想法是“将你需要的所有对象复制到数组中并使用System.arraycopy 。我知道在这个精彩的论坛中通常的做法,而不是回答所提出的问题,提供一个完整的替代解决方案,原则上与原始问题无关,除了它完成相同的工作。 最好的祝福。

OpenShift,Log4j2和Maven – 无法解决项目的依赖关系

我创建并运行了一个独立的Java程序,使用Slf4j通过Log4j2进行日志记录。 日志记录按预期工作。 然后,我将此function添加到我在Eclipse IDE中开发的现有(和工作) OpenShift Java Web应用程序中。 我将以下依赖项添加到pom.xml org.slf4j slf4j-api 1.7.21 org.apache.logging.log4j log4j-core 2.7 org.apache.logging.log4j log4j-api 2.7 org.apache.logging.log4j log4j-slf4j-impl 2.7 我使用了一个简单的log4j2.xml配置文件,并在Java类中添加了一些日志代码。 我在本地运行Web应用程序,日志工作正常。 然后我将pom.xml和log4j2.xml移动到Git Staging Area并执行Commit和Push 。 这通常很好,没有问题。 这次我在对话框控制台窗口中收到以下错误消息: [ERROR] Failed to execute goal on project testdb: Could not resolve dependencies for project testdb:testdb:war:1.0: Failure to find org.apache.logging.log4j:log4j-api:jar:2.7 in http://maven.repository.redhat.com/techpreview/all was cached in the local repository, […]

保护Java类文件不被提取时Jar2Exe如何工作

我想保护我的文件不被提取,我的代码被黑客攻击。 我在SO上看到了两个类似的问题 http://stackoverflow.com/questions/9633455/how-to-protect-a-jar-file-from-being-decompiled http://stackoverflow.com/questions/7622419/protect-jar-file-source-code-with-exe-file-java 但这些问题的答案最终都是使用ProGaurd 。 虽然ProGaurd本身表示它将尽力模糊代码并且不保证100%代码将保持安全。 但有些软件可以转换Jar2Exe @ http://www.jar2exe.com/ ,保证代码保持100%安全。 除了JarProtector @ http://www.bfa-it.com/?lang=en&id=products/jarprotector 如果有人保证我们的类文件将保持安全,那么这意味着肯定有一条出路,但他们将使用什么技术来保护我们的类文件。 我知道您只能猜测,但您最好猜测的是什么,以便在我们将Life-Efforted应用程序交给客户之前保护我们的应用程序?

ui:当ajax请求时,重复的值方法(带参数)是否有效?

当mypage.xhtml第一次加载时, #{DashBoard.getResvDataModelList(date, meetingRoom)}良好。 当h:commandLink , date和meetingRoom实例的ajax请求为空时。 这就是为什么我在getResvDataModelList(Date date, MeetingRoom meetingRoom)方法中得到NullPointerException 。 我怎么解决这个问题? 我的情况是我必须在ui:repeat value方法中使用page parameter 。 你能提供另一种解决方案吗? 如果我删除 ,我的页面可以很好地处理ajax请求。 原因: Caused by: javax.faces.el.EvaluationException: java.lang.NullPointerException at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:102) [jboss-jsf-api_2.1_spec-2.0.5.Final.jar:2.0.5.Final] at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102) [jsf-impl-2.1.7-jbossorg-2.jar:] … 38 more 的MyMethod public List getResvDataModelList(Date date, MeetingRoom meetingRoom) { logger.debug(“getResvDataModelList() ====> ” + formatter.format(date) + ” : ” + meetingRoom.getName()); } mypage.xhtml

如何更改字符串样式

我们可以将java中的String Style从normal更改为bold吗? 示例:我希望将字符串“Name”从普通样式更改为粗体样式。 java中包含的任何默认方法?

从单个对象inheritance的不同类型的集合与单个超级对象集合

想象一下以下场景。 class Shape { // methods of Class Shape } class Circle extends Shape { // methods of Class Shape // methods of Class Circle } class Square extends Shape { // methods of Class Shape // methods of Class Square } class Canvas // This class should a bucket of objects that belong to […]

Android Java ServerSocket端口号不是它应该的

嗨,我正在进行android开发,并在使用套接字API时发现了一些奇怪的东西。 在我创建的套接字之间 ServerSocket server = new ServerSocket(4444); Socket client = server.accept(); 和 client.getPort(); 不是4444。 由于端口号几乎是随机的,因此客户端无法与服务器应用程序通信。 任何信息或建议都会有所帮助! 完整的示例项目在这里。 http://vext.eclipselabs.org.codespot.com/files/SocketTest.zip 提前致谢!

将mysql连接到Java netbeans时出错

我正在尝试将连接connector/j driver到Netbeans 。 我按照以下步骤进行连接, 在服务中,我右键单击并单击新连接。 然后我浏览并添加mysql-connector-java-5.1.23-bin.jar文件。 然后单击下一步。 然后是一个JDBC url : jdbc:mysql://localhost:3306/mysql正在显示。 我单击测试连接按钮 然后我收到以下错误: 无法使用com.mysql.jdbc建立与jdbc:mysql:// localhost:3306 / mysql的连接。 驱动程序(通信链路故障)成功发送到服务器的最后一个数据包是0毫秒之前。驱动程序没有从服务器收到任何数据包。)

使用selenium获取CSS属性值

如何使用selnium RC获取CSS类的属性值 我尝试使用webdriver但无法获得所需的内容