假设我有一个servlet,它读取和写入一个文件到socket,我想在servlet和socket之间建立连接,怎么办呢?
好吧,对于一个套接字,我读到的地方只需要这样做:
URL url = new URL("http://example.com/getFile");
URLConnection con = url.openConnection();
con.setDoOutput(true);
我怎么能为servlet做同样的事情?
我想这样做,因为我将在servlet和scoket之间发送和接收文件。另外,他们如何知道对方何时发送了一个文件并应该读取它?
我搜索了这个,但找不到任何解释它的网站。
答案 0 :(得分:0)
我不确定你是什么意思' Socket'。如果套接字是标准协议(http / https / ftp),那么您可以像在独立程序中一样使用Servlet中的上述代码。
如果您的套接字没有规定任何标准,那么您可能希望使用下面的代码打开直接连接:
Socket socket = new Socket(server,port);
//Get an input stream from the socket
BufferedReader inputStream =
new BufferedReader(new InputStreamReader(
socket.getInputStream()));
//Get an output stream to the socket. Note
// that this stream will autoflush.
PrintWriter outputStream =
new PrintWriter(new OutputStreamWriter(
socket.getOutputStream()),true);
outputStream.println("send_ data");
System.out.println(inputStream.readLine());
socket.close();
关于文件发送代码,如果涉及的主要任务是文件传输,您可以使用FTP协议在servlet和套接字之间发送文件。
你可以在套接字端有一个文件监视器来知道何时传输文件。有关详细信息,请参阅filewatcher和ftp。
答案 1 :(得分:0)
你混淆了它看起来像的servlet和套接字。区别在于:
ServerSocket
等待连接和客户端套接字建立与服务器套接字的连接。 Request
和Response
个对象一起使用。您的servlet负责处理用户请求并形成响应。