连接到Tomcat上的套接字?

我正在尝试从独立的applet连接到在tomcat上运行的servlet:

Servlet的

public void init(ServletConfig config) throws ServletException { super.init(config); // Start a daemon thread try { daemonThread = new Daemon(this); daemonThread.start(); } catch (Exception e) { } } protected int getSocketPort() { return 8080; } public void handleClient(Socket client){ new ScribbleThread(this, client).start(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter out = response.getWriter(); StringBuffer sb = new StringBuffer(); sb.append(""); sb.append("

RUNNING


"); sb.append(""); out.println(sb); out.close(); } }

Servlet的init()创建了这个:

 class Daemon extends Thread { private ServerSocket serverSocket; private SocketServlet servlet; public Daemon(SocketServlet servlet) { this.servlet = servlet; } public void run() { try { // Create a server socket to accept connections serverSocket = new ServerSocket(servlet.getSocketPort()); } catch (Exception e) { return; } try { while (true) { try { servlet.handleClient(serverSocket.accept()); } catch (IOException ioe) { } } } 

我通过eclipse将其部署到TomCat。 我的问题是我的applet需要将套接字设置为什么地址? 当i visit http://localhost:8080/scrabServ/connect我看到来自doGet()的’RUNNING’消息,那么它需要指向哪里?

小程序:

 public static String testConnection(){ InputStream in = null; try { // Make socket connection to servlet String servlet = new String("localhost/scrabServ/connect"); Socket socket = new Socket(servlet, 8080); 

这给了我:

 Exception in testConnection()java.net.UnknownHostException: localhost/scrabServ/connect at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:195) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:432) at java.net.Socket.connect(Socket.java:529) at java.net.Socket.connect(Socket.java:478) at java.net.Socket.(Socket.java:375) at java.net.Socket.(Socket.java:189) at scribble.Scribble.testConnection(Scribble.java:41) at scribble.Scribble.main(Scribble.java:28) 

并指向new Socket(servlet, 8080)行。

你只需打开一个套接字到"localhost", 8080 ,然后发出一个GET scrabServ/connect命令。 您无法打开特定URL的套接字。

要通过请求参数与servlet进行通信,基本上发出一个GET命令,例如: http : //www.jmarshall.com/easy/http/http_footnotes.html#getsubmit

也许你应该使用URLConnection 。 如果你详细说明你想要做什么,也许我可以更好地了解如何帮助你,甚至可能甚至不需要HTTP服务器来做你想做的事情。