Tôi đang cố gắng để kết nối từ một applet độc lập để một servlet chạy trên tomcat:Kết nối với ổ cắm trên Tomcat?
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("<html><body bgcolor=pink text=red>");
sb.append("<h1 align=center>RUNNING</h1><hr>");
sb.append("</body></html>");
out.println(sb);
out.close();
}
}
Servlet của init()
tạo này:
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) {
}
}
}
Tôi đã này được triển khai bởi eclipse để TomCat. Câu hỏi của tôi là applet của tôi cần tạo socket nào? Khi i visit http://localhost:8080/scrabServ/connect
tôi thấy thông báo 'RUNNING' từ số doGet()
sao cho nó cần phải trỏ đến?
Applet:
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);
này mang lại cho tôi:
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.<init>(Socket.java:375)
at java.net.Socket.<init>(Socket.java:189)
at scribble.Scribble.testConnection(Scribble.java:41)
at scribble.Scribble.main(Scribble.java:28)
và các điểm đến dòng new Socket(servlet, 8080)
.
Tôi đã đọc URLConnection là một yêu cầu duy nhất, một sơ đồ phản hồi đơn. Tôi cần một kết nối liên tục. Bạn có thể giải thích ý của bạn bằng GET? Làm thế nào tôi sẽ chuyển một chuỗi "Test" tới servlet inputStream bằng GET? – Sbram
@Sbram Tôi mở rộng câu trả lời của mình một chút. – Marcelo
Cảm ơn sự giúp đỡ của bạn. Tôi cần phải có nhiều khách hàng kết nối với servlet để họ có thể tương tác với nhau và được thông báo về các hành động khác. – Sbram