TCP-上传图片

    xiaoxiao2025-06-03  41

    //TCP-上传图片 import java.io.*; import java.net.*; /*思路 客户端 1,服务端点. 2,读取客户端已有的图片数据. 3,通过socket 输出流将数据发给服务端. 4,读取服务端反馈信息. 5,关闭 */ class PicClient { public static void main(String[] args) throws Exception { Socket s = new Socket("192.168.1.254",10007); FileInputStream fis = new FileInputStream("1.bmp");//文件字节流 OutputStream out = s.getOutputStream(); byte[] buf = new byte[1024];//字节数组缓冲区 int len = 0;//长度 while ((len=fis.read(buf))!=-1)//读取文件字节流fis并写入buf,-1为结束 { out.write(buf,0,len); } //读取服务端信息 InputStream in = s.getInputStream(); byte[] bufIn = new byte[1024];//字节数组缓冲区 int num = in.read(bufIn);//长度 System.out.println(new String(bufIn,0,num));//new String(byte[],offset,length)转化字节数组byte[]为String fis.close();//关io流 s.close();//关Socket } } /*服务端*/ class PicServer { public static void main(String[] args) throws Exception { ServerSocket ss = new ServerSocket(10007); Socket s = ss.accept();//拿Socket对象 InputStream in = s.getInputStream();//读取Socket流 FileOutputStream fos = new FileOutputStream("server.bmp");//写文件 byte[] buf = new tyte[1024]; int len = 0; while ((len=in.read(buf))!=-1)////写缓冲区 { fos.write(buf,0,len);//写文件 } s.shutdownOutput();//s调用shutdownOutput() //告诉服务端数据已写完,不然会阻塞 OutputStream out = s.getOutputStream();//给Socket写返回信息 out.write("上传成功!".getByte());//getByte()方法,String转成字节数组byte[]来发送 fos.close(); s.close(); ss.close(); } }
    转载请注明原文地址: https://ju.6miu.com/read-1299556.html
    最新回复(0)