java - 如何在 servlet 和套接字之间建立连接

标签 java servlets websocket

假设我有一个 servlet,可以向套接字读取文件并将其写入文件,并且我想在 servlet 和套接字之间建立连接,该怎么做?

好吧,对于套接字,我在某处读到只需这样做:

URL url  = new URL("http://example.com/getFile");
URLConnection con = url.openConnection();
con.setDoOutput(true);

我怎样才能对 servlet 执行同样的操作?

我想这样做,因为我将在 servlet 和 scoket 之间发送和接收文件。另外,他们如何知道对方何时发送了文件并应该读取该文件?

我已经搜索过这个,但找不到任何解释它的网站。

最佳答案

我不确定“套接字”是什么意思。如果套接字是标准协议(protocol)(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协议(protocol)在servlet和socket之间发送文件。
您可以在套接字端安装一个文件观察器来了解文件何时传输。请参阅filewatcherftp了解更多信息。

关于java - 如何在 servlet 和套接字之间建立连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23272897/

相关文章:

java - 无法为 JSP 编译类 : The type java. util.Map$Entry 无法解析。它是从所需的 .class 文件中间接引用的

java - 调用 ServletOutputStream.close() 后我应该做繁重的工作吗?

scala - 找不到基本的Play 2.0 WebSocket请求 header

java - BroadcastReceiver onReceive 方法内的异步任务未运行?

java - Java获取ArrayList中的第一个和最后一个元素

spring - 共享的 C3P0 JNDI 数据源在 Jetty 的 servlet 取消部署期间关闭,其他 servlet 不再可以访问

ruby-on-rails - 使用 websocket-rails gem 时如何防止垃圾邮件?

java - GridBagLayout 行权重

java - DefaultMessageListenerContainer,让 sessionTransacted 属性工作?

testing - 如何通过 jmeter 中的 websocket 采样器传递 json 请求?