废话1000000字省略.........呵呵......
首先是服务器端:FileServer.java
package com.stars.windsystem.tool.utils;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
/**
* @描述: TODO 服务器端: 本例为通过Socket编程实现从 服务器端 发送文件到 客户端
* @类名称: FileServer
* @作者: 宋延军
* @邮箱: songyanjun_stars@126.com
* @日期: Feb 14, 2012 11:57:47 AM
*/
public class FileServer {
/**
* 描述: TODO 服务器端测试入口
* @标题: main
* @设定: @param a
* @返回类型: void
*/
public static void main(String[] a) {
FileServer fileServer = new FileServer();
fileServer.sendFile();
}
public void sendFile() {
byte[] buffer = new byte[1024];// 定义一byte类型的缓冲区。
try {
ServerSocket ssocket = new ServerSocket(2000);
System.out.println("服务器启动!");
Socket socket = ssocket.accept();
int length = 0;
File f = new File("d:\\aaa.txt");
FileInputStream fis = new FileInputStream(f);
DataInputStream dataIn = new DataInputStream(fis);
DataOutputStream dataOut = new DataOutputStream(socket.getOutputStream());
while ((length = dataIn.read(buffer)) != -1)
{
dataOut.write(buffer, 0, length);
}
dataOut.flush();
dataOut.close();
fis.close();
System.out.println("文件传送完毕!!!");
socket.close();
}
catch (IOException ex)
{
ex.printStackTrace();
}
}
}
其次是 客户端:FileClient.java
package com.stars.windsystem.tool.utils;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.Socket;
/**
* @描述: TODO 客户端: 本例使用socket编程实现从服务器端接收程序到客户端
* @类名称: FileClient
* @作者: 宋延军
* @邮箱: songyanjun_stars@126.com
* @日期: Feb 14, 2012 12:01:57 PM
*/
public class FileClient {
/**
* 描述: TODO 客户端测试入口
* @标题: main
* @设定: @param args
* @返回类型: void
*/
public static void main(String[] args) {
FileClient fileClient = new FileClient();
fileClient.receiveFile();
}
public void receiveFile() {
byte[] buffer = new byte[1024];
int length = 0;
try {
Socket socket = new Socket("10.40.2.7", 2000);
DataInputStream dataIn = new DataInputStream(socket
.getInputStream());
File f = new File("d:\\fff.txt");
if (!f.exists())
f.createNewFile();
FileOutputStream fos = new FileOutputStream(f);
while ((length = dataIn.read(buffer)) != -1) {
fos.write(buffer, 0, length);
}
fos.close();
System.out.println("客户端文件接收完毕!!!");
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Over!!!