zoukankan      html  css  js  c++  java
  • java===TCP(文件上传功能)

    TCP传输,客户端建立过程: 1、创建TCP客户端SOCKET服务,使用的Socket对象,并明确目的地要连接的主机; Socket socket = new Socket("192.168.1.4",10002); 2、如果连接建立成功,说明数据传输通道已建立。该通道就是Scoket流,是底层建立好的;可以用Socket对象来获取输出输入了流; OutputStream out = socket.getOutputStream(); 3、使用输出流将数据写出。 out.write("tcp演示".getBytes()); 4、关闭资源。 socket.close();

    tcp服务端: 1、创建tcp服务端Socket服务,使用ServerSocket对象,指定一个端口供其他主机访问; ServerSocket ss = new ServerSocket(10002); 2、服务端为了不乱,会获取各个客户端Socket服务对象,用其自身的socket对象与其交流; Socket s = ss.accept(); String ip =s.getInetAddress().getHostAddress(); 3、通过客户端对象获取socket流读取客户端发来的数据 InputStream in = s.getInputStream(); byte[]buf = new byte[1024]; int len =in.read(buf); String text = new String(buf,o,len); 4、关闭资源。关客户端,关服务端;(关闭客户端是为了不占用服务端资源,而且在服务端关闭可控)

    s.close(); //服务端一般不关闭;

    import java.io.*;
    import java.net.*;
    public class Client{
          public static void main(String[]args)throws IOException{
                  BufferedReader bufr = new BufferedReader(new FileReader("e:\client.txt"));
                Socket ss = new Socket("192.168.1.4",9987);
                BufferedWriter bufout = new BufferedWriter(new OutputStreamWriter(ss.getOutputStream()));
                String line = null;
                while((line = bufr.readLine())!=null){
                     bufout.write(line);
                     bufout.newLine();
                     bufout.flush();
                }
                ss.shutdownOutput();
                BufferedReader bufin = new BufferedReader(new InputStreamReader(ss.getInputStream()));
                String text = bufin.readLine();
                System.out.println(text);
                bufr.close();
                bufout.close();
                bufin.close();
          }
    }
    import java.io.*;
    import java.net.*;
    
    public class Server{
          public static void main(String[]args)throws IOException{
                ServerSocket ss = new ServerSocket(9987);
                Socket s = ss.accept();
                BufferedReader bufin = new BufferedReader(new InputStreamReader(s.getInputStream()));
                PrintWriter pw = new PrintWriter(new FileWriter("f:\server.txt"),true);
                String line =null;
                while((line=bufin.readLine())!=null){
                     pw.println(line);
                }
                BufferedWriter bufout = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
                bufout.write("上传成功");
                bufout.flush();
                s.close();
                pw.close();
          }
    }


     

  • 相关阅读:
    【洛谷】1852:[国家集训队]跳跳棋【LCA】【倍增?】
    【POJ】1835:宇航员【模拟】【三维行走】
    【BZOJ】3195: [Jxoi2012]奇怪的道路【状压/奇偶性】【思路】
    【10.24校内测试】【欧拉路径(有向+无向)】【双向链表/树状数组/线段树】
    【POJ】1840:Eqs【哈希表】
    【洛谷】4317:花神的数论题【数位DP】
    【POJ】1486:Sorting Slides【二分图关键边判定】
    算法模板
    Redis源码阅读一:简单动态字符串SDS
    总结下c/c++的一些调试经验
  • 原文地址:https://www.cnblogs.com/wangyinxu/p/6915391.html
Copyright © 2011-2022 走看看