//要发送的人
// DatagramSocket ds = new DatagramSocket();
// //定义要发送的文件
// String str="真能熬夜";
// //把文件打包
// DatagramPacket dp = new DatagramPacket(str.getBytes(),str.getBytes().length,InetAddress.getByName("127.0.0.1"),8848);
// //发送
// ds.send(dp);
// System.out.println("发送成功!");
// //关闭资源
// ds.close();
接收方
//定义接收的人
// DatagramSocket ds = new DatagramSocket(8848);
// //准备容器接收
// byte [] ba = new byte[10];
// DatagramPacket dp = new DatagramPacket(ba,ba.length);
// System.out.println("准备接收");
//
// //开始接收
// ds.receive(dp);
// //把字节转为字符串
// String str = new String(ba);
// System.out.println("\t\t接收的内容如下:"+str);
// //关闭资源
// ds.close()
四:传送文件
发送文件
//定义要传送的文件
File file = new File("C:\Users\zjjt\Pictures\Camera Roll\3.gif");
FileInputStream fis = new FileInputStream(file);//文件字节读取流
BufferedInputStream bis = new BufferedInputStream(fis);//缓冲字符流
//传送的人
DatagramSocket ds = new DatagramSocket();
//定义要传送的包
DatagramPacket dp;
byte [] bs = new byte[10];
while(true) {
//边读
int n = bis.read(bs);
// Thread.sleep(10);//休息十毫秒
if(n==-1) {
break;
}
//边存进包
dp = new DatagramPacket(bs,bs.length,InetAddress.getByName("127.0.0.1"),8888);
//边发送
ds.send(dp);
}
//在发送一个结束包
dp = new DatagramPacket("bey".getBytes(),"bey".getBytes().length,InetAddress.getByName("127.0.0.1"),8888);
ds.send(dp);
//关闭资源
ds.close();
bis.close();
System.out.println("发送成功!");
接收文件
//定义保存的位置
File file = new File("E:\sa.gif");
//开始写
FileOutputStream fos = new FileOutputStream(file);
//转为缓冲
BufferedOutputStream bos = new BufferedOutputStream(fos);
//接收的人
DatagramSocket ds = new DatagramSocket(8888);
//接收的包
DatagramPacket dp ;
byte [] ba = new byte[10];
System.out.println("准备接收");
while(true) {
//准备包裹
dp = new DatagramPacket(ba, ba.length);
//给接收的人
ds.receive(dp);
if(new String(ba).contains("bey")) {
break;
}
//边写边入本地
bos.write(ba);
bos.flush();
}
//关闭
bos.close();
ds.close();
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)