通过套接字发送文件

时间:2011-10-28 12:00:36

标签: java file networking

有没有办法通过Java中的套接字发送文件?如果是这样的话?如果没有,如何使用java将文件从一台计算机发送到另一台计算机?

5 个答案:

答案 0 :(得分:4)

打开套接字连接并将文件字节复制到套接字中,并从套接字的另一端读取字节。与通过套接字连接发送任何流的方式相同。也就是说,有多种方法可以将文件从一台计算机复制到另一台计算机(使用java),包括复制到共享文件系统,整理文件,http将文件发布到网络服务器......

答案 1 :(得分:1)

客户端 - 服务器架构最适合实现您的目标。

在第一台计算机上启动FileServer,然后在第二台计算机上运行FileClient

Sending files over socket.

答案 2 :(得分:1)

import java.io.BufferedInputStream;



import java.io.File;

import java.io.FileInputStream;

import java.io.IOException;

import java.io.OutputStream;

import java.net.ServerSocket;

import java.net.Socket;

public class Main
 {

 public static void main(String[] args) throws IOException {

 ServerSocket servsock = new ServerSocket(123456);

File myFile = new File("s.pdf");

while (true)
 {

  Socket sock = servsock.accept();

   byte[] mybytearray = new byte[(int) myFile.length()];

   BufferedInputStream bis = new BufferedInputStream(new FileInputStream(myFile));

  bis.read(mybytearray, 0, mybytearray.length);

   OutputStream os = sock.getOutputStream();

   os.write(mybytearray, 0, mybytearray.length);

     os.flush();

    sock.close();

  }

 }

}

The client module


import java.io.BufferedOutputStream;

import java.io.FileOutputStream;

import java.io.InputStream;

import java.net.Socket;

public class Main {

public static void main(String[] argv) throws Exception
 {

 Socket sock = new Socket("127.0.0.1", 123456);

 byte[] mybytearray = new byte[1024];

 InputStream is = sock.getInputStream();

 FileOutputStream fos = new FileOutputStream("s.pdf");

  BufferedOutputStream bos = new BufferedOutputStream(fos);

   int bytesRead = is.read(mybytearray, 0, mybytearray.length);

 bos.write(mybytearray, 0, bytesRead);

   bos.close();

   sock.close();

  }

}

答案 3 :(得分:0)

答案 4 :(得分:0)

如果您主要关注的是将文件从一台计算机发送到另一台计算机。而不是使用专有协议构建自己的文件服务器和客户端,您可以在服务器端嵌入ftp-server,在自己的Java应用程序中嵌入ftp client客户端。