请问如何实现双方发送图片????

解决方案 »

  1.   

    简单! 
    双方约定一下格式,用Socket.getInputStream,getOutputStream发送接收提取出来的文件流.
      

  2.   

    但是我是面向UDP的啊!!
    可以再说的细点吗??
    谢了!!!
      

  3.   

    将图片转码成BASE64字符串,再拆分为一个个的UDP包
    然后用UDP发送,接受方负责UDP包的拼装,转为BASE64字符串,再转化为图片文件。以上是说法,具体实现比较复杂,应该有现成的JAVA方法的,不知道LZ为什么一定要UDP实现呢?
      

  4.   

    UDP可能会丢包,下面是使用TCP实现方法服务器端实现代码:import java.io.*;import java.net.*;public class FileServer{public static void main(String[] args)throws Exception{//创建文件流用来读取文件中的数据File file=new File("lishengjie.jpg");FileInputStream fos=new FileInputStream(file);//创建网络服务器接受客户请求ServerSocket ss=new ServerSocket(3108);Socket client=ss.accept();//创建网络输出流并提供数据包装器OutputStream netOut=client.getOutputStream();OutputStream doc=new DataOutputStream(new BufferedOutputStream(netOut));//创建文件读取缓冲区byte[] buf=new byte[2048];int num=fos.read(buf);while(num!=(-1)){//是否读完文件doc.write(buf,0,num);//把文件数据写出网络缓冲区doc.flush();//刷新缓冲区把数据写往客户端num=fos.read(buf);//继续从文件中读取数据}fos.close();doc.close();}}客户方实现代码:import java.io.*;import java.net.*;public class FileClient{public static void main(String[] args)throws Exception{//使用本地文件系统接受网络数据并存为新文件File file=new File("newFile.jpg");file.createNewFile();RandomAccessFile raf=new RandomAccessFile(file,"rw");// 通过Socket连接文件服务器Socket server=new Socket(InetAddress.getLocalHost(),3108);//创建网络接受流接受服务器文件数据 InputStream netIn=server.getInputStream();InputStream in=new DataInputStream(new BufferedInputStream(netIn));//创建缓冲区缓冲网络数据byte[] buf=new byte[2048];int num=in.read(buf);while(num!=(-1)){//是否读完所有数据raf.write(buf,0,num);//将数据写往文件raf.skipBytes(num);//顺序写文件字节num=in.read(buf);//继续从网络中读取文件}in.close();raf.close();}}