socket简单示例实现从服务器拷贝文件到客户端

 读写工具类

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.IOException;

public class MyUtil {
/**
*
* @param bis 缓存字节输入流
* @param bos 缓存字节输出流
* @throws IOException 抛出异常,IO流读写过程中可能发生异常
*/
public static void readAndWriter(BufferedInputStream bis, BufferedOutputStream bos) throws IOException {
// 定义长度为1024的字节数组
byte [] bytes = new byte [1024];
int c = 0;
while((c = bis.read(bytes))!=-1){//组合式写法
//写入到文件
bos.write(bytes, 0, c);
}
//关闭流,一定要关闭流,节约资源
bos.close();
bis.close();
}
}


服务器
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;

public class MyServer {
public static void main(String[] args) throws IOException {
//1.创建server,自定义端口号
ServerSocket server = new ServerSocket(1689);
//2.监听
Socket socket = server.accept();
//3.通过socket读取网络文件
BufferedInputStream bis = new BufferedInputStream(socket.getInputStream());
//4.写入到本地文件
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("E:/1.txt"));
//5.边读边写
//读取的中转站
MyUtil.readAndWriter(bis,bos);
}
}


客户端

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.net.InetAddress;
import java.net.Socket;

public class MyClient {
public static void main(String[] args) throws IOException {
// 创建socket和server进行连接,连接服务器的端口号
Socket socket = new Socket(InetAddress.getLocalHost(),1689);
// 读取文件
BufferedInputStream bis = new BufferedInputStream(new FileInputStream("F:/Music/A Fine Keturns-- 《New World M.mp3"));
// 写入到网络中
BufferedOutputStream bos = new BufferedOutputStream(socket.getOutputStream());
MyUtil.readAndWriter(bis,bos);
}
}

猜你喜欢

转载自www.cnblogs.com/givre-foudre/p/12343460.html
今日推荐