Java Socket端口转发

我使用套接字在Java中创建了一个联网游戏。 它工作得很好,除了……只能通过我的局域网。 :/我想要做的是设置它,以便我可以启动在家用计算机上运行的服务器,并将客户端代码,在可执行的jar中发送给其他人,让他们能够启动它和通过互联网连接。 但就像…我不知道如何设置我的调制解调器和路由器。 :(我有一个无线清除调制解调器,其配置页面如下所示: http://sofzh.miximages.com/java/ 还有一个Netgear路由器,其页面如下所示: http://sofzh.miximages.com/java/ 现在,在客户端和服务器运行器类中,我将PC的私有IP地址与我选择的端口号一起传递给ServerSocket和Socket对象。 我听说套接字可以是UDP或TCP,具体取决于你如何设置,或者……? 我不做那样的事情,但是我只是实例化它们并传递它们的2个值,然后它们就…… 在服务器的代码中: ServerSocket sock = new ServerSocket(); sock.bind(new InetSocketAddress(IP, 9001)); 客户代码: Socket sock = new Socket(IP, 9001); 同样,我需要知道如何通过更改路由器/调制解调器设置来相应地更改代码。 “IP”是一个字符串,表示我的计算机的私有IP,192.168.1.10,并且该程序仅在我传递给Socket&ServerSocket的字符串时才有效。 就像我说的,我有一个调制解调器连接到一台连接到我的电脑的路由器。 那么,有人可以向我解释(详细说明,因为我是一个菜鸟)我究竟需要做些什么来配置它们,以及我必须对我的代码进行的更改?

传递ResultSet是否可以?

在我的情况下,我正在查询数据库以获取特定的返回(在这种情况下,基于用户名的注册信息)。 //Build SQL String and Query Database. if(formValid){ try { SQL = “SELECT * FROM users WHERE username=? AND email=?”; Collections.addAll(fields, username, email); results = services.DataService.getData(SQL, fields); if (!results.next()){ errMessages.add(“User account not found.”); } else { user = new User(); user.fillUser(results); //Is it ok to pass ResultSet Around? } } catch (SQLException e) { e.printStackTrace(); […]

如何用Java检测当前显示?

我连接了2个显示器,因此我可以在主显示器或辅助显示器上启动我的Java应用程序。 问题是:我怎么知道哪个显示包含我的应用程序窗口,即有没有办法用Java检测当前显示?

结肠在Java中意味着什么?

结肠在Java中意味着什么? 我有这个: public static List findAllAnagrams(List words) { List result = new LinkedList(); for(String i : words){ for (String j : words){ if (result.contains(i)) { break; } else if (i == j) { } else { if (areAnagrams(i,j)){ result.add(i); System.out.println(result); } } } } return result; }

设置套接字接收超时

我想将数据发送到服务器,然后等待一分钟的答案,然后关闭套接字。 怎么做? DatagramPacket sendpack = new ……; socket.send(pack); DatagramPacket recievepack = new …..; //wait 1 minute{ socket.recieve(buf); //wait 1 minute} socket.close();

这个clone()有什么问题?

我编写了这个克隆方法,当Employee类的父类是抽象的,而父类中的clone()方法是abstract.I想用这个代码复制Employee的对象的原始数据类型,而不是复制每个原始数据单独键入,但此代码与我调用clone()方法的行有问题。 (此代码在Employee类中) public Object clone() { Object obj = new Object(); Object object = obj.clone(); //Emphasis here return object; } 错误是:Object类型的方法clone()不可见。 但是我的Employee类在类层次结构中,可以访问Object类中的protected clone()方法。 这是我简单的Employee类: public class Employee extends Person implements Cloneable { private int ID; public Employee() { ID = 0; } public void setID(int ID) { this.ID = ID; } public int getID() { […]

JDK9上的“包java.net.http不存在”错误

我在从HttpRequest JavaDoc编译简单的阻塞GET示例时遇到问题: package org.example; import java.io.IOException; import java.net.URI; import java.net.URISyntaxException; import java.net.http.HttpRequest; import java.net.http.HttpResponse; import static java.net.http.HttpRequest.noBody; import static java.net.http.HttpResponse.asString; public class Http2 { public static void main(String[] args) throws URISyntaxException, IOException, InterruptedException { HttpResponse response = HttpRequest .create(new URI(“http://www.infoq.com”)) .body(noBody()) .GET().response(); int responseCode = response.statusCode(); String responseBody = response.body(asString()); System.out.println(responseBody); } } 我在使用JDK 9编译时得到package […]

成功validation后,Spring安全性不会达到default-target-url

我在我的应用程序中实现了spring-security,我的spring-security.xml具有以下form-login标记。 我想从/login.htm登录,在成功validation后,我希望用户点击dashboard.htm。 Everythig工作得很好,除了成功validation之后它没有点击/dashboard.htm而是点击上下文…但如果我在url中手动输入dashboard.htm那么一切正常……是的..我有authticationSuccessHandler的实现。

在Java中使用“this”

如果我写下面的课程: public class Example { int j; int k; public Example(int j, int k) { j = j; k = k; } public static void main(String[] args) { Example exm = new Example(1,2); System.out.println(exm.j); System.out.println(exm.k); } } 程序编译,但是当我运行程序时,main方法将打印出两个0。 我知道为了说我想在构造函数中初始化实例变量,我必须写: this.j = j; this.k = k; 但是如果我不写它,那么在构造函数中(在表达式的左侧和写入侧)评估(或考虑)哪个变量? 是参数还是实例变量? 这有什么不同吗? 是否有其他情况需要使用thisfunction?

性能测试Flex应用程序

使用BlazeDS / Java服务器后端程序对Flex应用程序进行性能测试的最佳方法是什么? 我们正在研究JMeter,但它是否可以在更复杂的级别上与amf协议一起使用,其中请求中的值可以被操纵?