TCP实现文件传输的代码
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;
/*
* 上传文件
* 创建客户端
* 1.使用Socket创建客户端(这里实际上就是和服务器建立连接)
* 所以需要指定服务器的地址和端口
* 2.输入输出流操作
* 3.释放资源
*/
public class FileClient {
public static void main(String[] args) throws UnknownHostException, IOException {
System.out.println("------client----------");
//1.使用Socket创建客户端(这里实际上就是和服务器建立连接)
Socket client=new Socket("localhost",8888);
// 2.文件的拷贝 文件上传到服务器
InputStream is=new BufferedInputStream(new FileInputStream("src/OIP.jpg"));
OutputStream os=new BufferedOutputStream(client.getOutputStream());//获取到图片
byte[] flush=new byte[1024];
int len=-1;
while((len=is.read(flush))!=-1) {
os.write(flush,0,len);
}
os.flush();
//3.释放资源
os.close();
is.close();
client.close();
}
}
package cn.jd.tcp;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
/*
* 存储文件
* 创建服务器
* 1.指定端口:使用ServerSocket创建服务器
* 2.阻塞式的等待连接
* 3.输入输出流操作
* 4.释放资源
*/
public class FileServer {
public static void main(String[] args) throws IOException {
System.out.println("------server----------");
//1.指定端口:使用ServerSocket创建服务器
ServerSocket server=new ServerSocket(8888);
//2.阻塞式等待连接accept
Socket client=server.accept();//一次accept就是一个连接
System.out.println("一个客户端建立了连接");
//3.操作:文件拷贝 服务器将文件存储到本地
InputStream is=new BufferedInputStream(client.getInputStream());
OutputStream os=new BufferedOutputStream(new FileOutputStream("src/tcp.jpg"));
byte[] flush=new byte[1024];
int len=-1;
while((len=is.read(flush))!=-1) {
os.write(flush,0,len);
}
os.flush();
//4.释放资源
os.close();
is.close();
client.close();
server.close();
}
}