Socket客户端上传文件

来源:互联网 发布:mac有必要安装office 编辑:程序博客网 时间:2024/05/19 20:40

package cc12;//服务器端import java.net.*;import java.text.SimpleDateFormat;import java.util.Date;import java.io.*;/** *  * Socketserver客户端读取文件并保存本文件 *  *  *  * */public class ServerFFFFF { private static  ServerSocket ss = null;private static Socket s = null;private static File f = null;private static RandomAccessFile fw = null; public static void main(String[] args) {ServerFFFFF sk = new ServerFFFFF();sk.initServer(1234);sk.getFile();}/**   * * 初始化服务器端  * @param port  *    *       服务器端要使用端口   *       */ public void initServer(int port){ try {  ss = new ServerSocket(port);s = ss.accept(); } catch (IOException e) {  e.printStackTrace(); }} // SocketClient读取文件public void getFile() {byte[] b = new byte[1024];try {  //定义输入流s.getInputStream(); InputStream in = s.getInputStream(); DataInputStream dis = new DataInputStream(new BufferedInputStream(in));//创建要保存文件SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd_HHmmss");//设置日期格式            String time=df.format(new Date());// new Date()为获取当前系统时间            //time="ccc";f = new File("d:/he/"+File.separator+time+".txt");System.out.println(f);fw = new RandomAccessFile(f, "rw");int num = dis.read(b);while (num != -1) { //向文件写入0~num字节  fw.write(b, 0, num);//跳num字节再写入文件 fw.skipBytes(num);//读取num字节 num = dis.read(b); }   //关闭输入输流  dis.close();fw.close(); } catch (IOException e) {e.printStackTrace(); } } }

package cc12;//客户端import java.net.*;import java.io.*;/** *  * SocketServerSocketClient接受文件名文件发送SocketServer端保存 *  *   *  *  */public class ClientFFFFF { private static File f = null;private static FileInputStream fis = null;private static DataOutputStream dout = null;private static Socket s = null;public static void main(String[] args) { ClientFFFFF sc = new ClientFFFFF();sc.connectSocketServer(1234);sc.sendFile("d:/he/lizhi.txt");} /**  *  *  * 连接服务器端  *   * @param port  *   *            要连接服务器SocketServer端口   **/ public void connectSocketServer(int port) { try {  s = new Socket(InetAddress.getLocalHost(), port); } catch (UnknownHostException e) { e.printStackTrace();  } catch (IOException e) {  e.printStackTrace();} } // 发送文件 public void sendFile(String str) { byte[] b = new byte[1024];f = new File(str); try { //数据输流  dout = new DataOutputStream(new BufferedOutputStream(s.getOutputStream())); //文件读入流fis = new FileInputStream(f);int n = fis.read(b); while (n != -1) {   //向网络写入数据   dout.write(b, 0, n); dout.flush();  //再读取n字节  n = fis.read(b);  }   //关闭流 fis.close();dout.close();} catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }}


0 0
原创粉丝点击