日期:2014-05-17  浏览次数:20644 次

一个关于applet无法连接socket的问题。。
以下是服务端的代码
Java code

import java.net.*;
import java.io.*;
public class Server{
    private ServerSocket ss;
    private Socket socket;
    public Server(){
        try{
            ss = new ServerSocket(10000);
            socket = ss.accept();
            System.out.println("Connection!");
        }
        catch(IOException e){
            System.err.println(e.toString());
        }
    }
    public static void main(String args[]){
        new Server();
    }
}


以下是客户端的代码
Java code

import javax.swing.*;
import java.net.*;
import java.io.*;
public class Client extends JApplet{
    private Socket socket;
    public void init(){
        try{
            socket = new Socket("127.0.0.1",10000);
        }
        catch(IOException e){
            System.err.println(e.toString());
        }
    }
}


如果客户端连得上服务端的话,服务端就会打印出“connection!”,可是我打开Client.html时没反应。我把客户端的代码改成应用程序的形式(即JFrame):
Java code

import javax.swing.*;
import java.net.*;
import java.io.*;
public class Client extends JFrame{
    private Socket socket;
    public Client(){
        try{
            socket = new Socket("127.0.0.1",10000);
        }
        catch(IOException e){
            System.err.println(e.toString());
        }
        setVisible(true);
    }
    public static void main(String args[]){
        new Client();
    }
}


就连接得上,这是为什么?

------解决方案--------------------
不抱错???

楼主将代码中的try部分去掉 不要捕捉异常 看看什么错误
------解决方案--------------------
好像为了安全的原因,除了该Applet的页面所在服务器外,不能访问其它的地址