2021/7/18

8:30-9:00 学习打卡
9:30-12:00 写qq项目
15:00-17:00 写qq项目

1.图片传发送测试类

将图片以文件形式读入,然后保存到消息包里,最后发送到客服端

package error;

import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;

public class ioo {
    public static void main(String[] args) throws FileNotFoundException {
        try {
            Socket s=new Socket("127.0.0.1",9999);
            Massage m=new Massage();
            ObjectOutputStream oos=new ObjectOutputStream(s.getOutputStream());
            String s1="D:/Ass/QQ/src/qqc/view/41.jpg";
            String s2="D:/Ass/QQ/src/qqc/view/4.jpg";
            FileInputStream fis=new FileInputStream(s2);//读出图片
            m.ss=new ArrayList<String>();
            m.ss1=new ArrayList<Integer>();
            m.ss2=new ArrayList<byte[]>();
            byte[] buf=new byte[1024];
            int len;
            while((len=fis.read(buf))!=-1){//将信息写入
                m.ss.add(s1);
                m.ss1.add(len);
                m.ss2.add(buf);
                buf=new byte[1024];
            }
            oos.writeObject(m);
        } catch (IOException e) {
            e.printStackTrace();
        }

    }
}

2.图片接收测试类

以消息类接收,从消息类中取出图片再保存进文件内。

package error;

import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;

public class ioi {
    public static void main(String[] args) {
        ServerSocket ss= null;
        try {
            ss = new ServerSocket(9999);
            Socket s=ss.accept();
            ObjectInputStream ois=new ObjectInputStream(s.getInputStream());
            Massage m=(Massage) ois.readObject();
            String s3=null;
            FileOutputStream fos=null;
            for(int i=0;i<m.ss.size();i++)
            {
                if(s3!=m.ss.get(i)){
                    s3=m.ss.get(i);
                    fos=new FileOutputStream(s3);
                }

                fos.write(m.ss2.get(i),0,m.ss1.get(i));
            }
            s.close();
        } catch (IOException | ClassNotFoundException e) {
            e.printStackTrace();
        }

    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值