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();
}
}
}