Java小程序无法通过套接字连接到主机
我有一个有趣的困境。。。我有一个java小程序,它将通过调用getCodeBase.getHost通过套接字连接到它的主机java应用程序。我有一个使用IIS设置的web服务器和一个不使用ip的动态dns设置,当我通过外部ip打开小程序时,它将在端口44444上创建到主机的套接字连接,但使用ip matrix159.no-ip.biz(动态主机名)会导致套接字无法连接。对不起,如果这个问题的措辞不正确,但我已经搜索了,找不到任何答案Java小程序无法通过套接字连接到主机,java,sockets,applet,ip,Java,Sockets,Applet,Ip,我有一个有趣的困境。。。我有一个java小程序,它将通过调用getCodeBase.getHost通过套接字连接到它的主机java应用程序。我有一个使用IIS设置的web服务器和一个不使用ip的动态dns设置,当我通过外部ip打开小程序时,它将在端口44444上创建到主机的套接字连接,但使用ip matrix159.no-ip.biz(动态主机名)会导致套接字无法连接。对不起,如果这个问题的措辞不正确,但我已经搜索了,找不到任何答案 private void submitButtonActio
private void submitButtonActionPerformed(java.awt.event.ActionEvent evt) {
try
{
System.out.println(getCodeBase().toString() + " " + "This is codebase");
String host = getCodeBase().getHost();
System.out.println(host);
socket = new Socket(getCodeBase().getHost(), 44444);
System.out.println("Socket opened");
if(host == null)System.out.println("Host was null");
outputStream = new DataOutputStream(socket.getOutputStream());
outputStream.writeUTF(buttonGroup1.getSelection().getActionCommand());
}
catch(UnknownHostException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
catch (IOException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
}
这是它产生的错误
Exception in thread "Thread-27" java.security.AccessControlException: access denied (java.net.SocketPermission 50.124.10.35:44444 connect,resolve)
at java.security.AccessControlContext.checkPermission(AccessControlContext.java:376)
at java.security.AccessController.checkPermission(AccessController.java:549)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
at sun.plugin2.applet.Applet2SecurityManager.checkPermission(Applet2SecurityManager.java:236)
at java.lang.SecurityManager.checkConnect(SecurityManager.java:1034)
at sun.plugin2.applet.Applet2SecurityManager.checkConnect(Applet2SecurityManager.java:568)
at java.net.Socket.connect(Socket.java:522)
at java.net.Socket.connect(Socket.java:476)
at java.net.Socket.<init>(Socket.java:373)
at java.net.Socket.<init>(Socket.java:187)
at myapplet.Main$3.run(Main.java:185)
at java.lang.Thread.run(Thread.java:695)
提供错误消息。我提供了我知道小程序被卡住的代码,因为当我单击submitButton时,它将冻结并没有响应,小程序的Java控制台没有提供任何错误,因为它在尝试连接时处于冻结状态。首先,您不应该在AWT事件线程中执行阻塞操作,例如网络操作。这就是冻结的原因。修复该问题,然后发布您得到的异常。异常将在超时后发生。耐心等待10分钟左右:好的,我会的,我应该用普通的线还是秋千工人?