2011-10-28 220 views

回答

1

客戶端 - 服務器架構最適合實現你想要的。

在第一臺計算機上啓動FileServer並在第二臺上運行FileClient

Sending files over socket.

4

你打開一個套接字連接和文件的字節複製到插座和插座的另一端讀取的字節數。與通過套接字連接發送任意流相同的方式。這麼說,有任何數量的方式從一臺計算機的文件複製到另一個(使用Java),包括複製到共享文件系統,FTP傳送文件,HTTP發佈文件到Web服務器...

0

如果您主要關注的是將文件從一臺計算機發送到另一臺計算機。而不是在使用專有協議構建自己的文件服務器和客戶端時,可以在服務器端嵌入ftp-server,在您自己的Java應用程序中嵌入客戶端的ftp client

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(); 

    } 

}