package ipuploadfile;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;
/**
* 网络编程:上传文件,
* 需求:客户端需定义输入流读取客户端本地磁盘中的数据,使用getOutputStream给服务端发送数据。
* 服务端需要定义输出流,将文件数据保存到服务端的本地磁盘中。使用getInputStream给客户端发送数据。
* @author Administrator
*
*/
public class IpUploadFile {
/**
* 客户端
* @param args
* @throws IOException
* @throws UnknownHostException
*/
public static void main(String[] args) throws UnknownHostException, IOException {
//创建客户端点对象
Socket s = new Socket("localhost",8978);
//获取输出流对象
OutputStream sps = s.getOutputStream();
//从磁盘中获取要被传输的数据
FileInputStream fis = new FileInputStream("d:1.整体课程介绍.avi");
byte [] buf = new byte [1024];
int len = 0;
while((len = fis.read(buf)) != -1){
sps.write(buf,0,len);
}
fis.close();
s.shutdownOutput();
System.out.println("********************文件上传完毕****************");
InputStream in = s.getInputStream();
byte [] b = new byte [1024];
int num = in.read(b);
System.out.println(new String(b,0,num));
s.close();
}
}
package ipuploadfile;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
/**
* 网络编程:上传文件,
* 需求:客户端需定义输入流读取客户端本地磁盘中的数据,使用getOutputStream给服务端发送数据。
* 服务端需要定义输出流,将文件数据保存到服务端的本地磁盘中。使用getInputStream给客户端发送数据。
* @author Administrator
*/
public class IpDownLoad {
/**
* 服务端
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
//创建服务端端点对象
ServerSocket ss = new ServerSocket(8978);
//获取连接到服务端的客户对象
Socket sss = ss.accept();
//获取输入流,读取客户端发来的数据
InputStream is = sss.getInputStream();
//创建输出流,将客户端发来的数据写到服务端的本地磁盘中。
String ip = sss.getInetAddress().getHostAddress();
FileOutputStream fos = new FileOutputStream("d://"+ip+".avi");
byte [] by = new byte [1024];
int len = 0;
while((len = is.read(by)) != -1 ) {
fos.write(by,0,len);
}
fos.close();
System.out.println("服务端将客户端的数据已接收完成");
OutputStream out = sss.getOutputStream();
out.write("服务器返回:文件上传完成".getBytes());
sss.close();
ss.close();
}
}