zoukankan      html  css  js  c++  java
  • 网络编程

    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.net.ServerSocket;
    import java.net.Socket;
    import java.util.Scanner;
    //服务器
    public class Test01 {
        public static void main(String[] args) throws IOException {
            ServerSocket ss = new ServerSocket(666);
            while (true) {
                Socket client = ss.accept();
                new Thread() {
                    @Override
                    public void run() {
                        //
    
                        try {
                            InputStream is = client.getInputStream();
                            int ch;
                            byte[] arr = new byte[1024];
                            ch = is.read(arr);
                            System.out.println(new String(arr, 0, ch));
    
                            //
                            OutputStream os = client.getOutputStream();
                            String word = new Scanner(System.in).nextLine();
                            os.write(word.getBytes());
    
                            client.close();
    
                        } catch (IOException e) {
                            e.printStackTrace();
                        } finally {
    
                        }
                    }
                }.start();
            }
    
        }
    }
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.net.Socket;
    import java.util.Scanner;
    //客户端
    public class Test02 {
        public static void main(String[] args) throws IOException {
    
            while (true) {
                Socket client = new Socket("10.1.10.42"/*客户端IP地址*/, 666);
                //
                OutputStream os = client.getOutputStream();
                String word = new Scanner(System.in).nextLine();
                os.write(word.getBytes());
    
                if (word.equals("bb")){
                    break;
                }
    
                //
                InputStream is = client.getInputStream();
                int ch;
                byte[] arr = new byte[1024];
                ch = is.read(arr);
                System.out.println(new String(arr,0,ch));
    
                client.close();
            }
        }
    }
    
    
    //客户端将硬盘数据给服务器
    import java.io.*;
    import java.net.Socket;
    
    public class Test03 {
        public static void main(String[] args) throws Exception {
            BufferedInputStream bis = new BufferedInputStream(new FileInputStream("day21\client\a.txt"));
    
            Socket client = new Socket("10.1.10.42", 777);
            OutputStream os = client.getOutputStream();
    
            int ch;
            byte[] arr = new byte[1024];
            while ((ch = bis.read(arr)) != -1) { /*客户端读到内存*/
                os.write(arr, 0, ch);/*客户端写到管道流*/
            }
            //client.shutdownOutput();
    
            InputStream is = client.getInputStream();
            byte[] arr2 = new byte[1024];
            int ch2 = is.read(arr2);
            System.out.println(new String(arr2,0,ch2));
    
            client.close();
            bis.close();
        }
    }
    //服务器接收来自客户端的数据并存入硬盘
    import java.io.*;
    import java.net.ServerSocket;
    import java.net.Socket;
    
    public class Test04 {
        public static void main(String[] args) throws IOException {
            ServerSocket ss = new ServerSocket(777);
            while (true) {
                Socket client = ss.accept();
                new Thread(){
                    @Override
                    public void run() {
                        try {
                            InputStream is = client.getInputStream();
                            BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("day21\server\"+System.currentTimeMillis()+".txt"));
                            byte[] arr = new byte[1024];
                            int ch;
                            while ((ch = is.read(arr))!= -1) {   /*服务器从管道流中读取到内存*/
                                bos.write(arr, 0, ch); /*服务器写到硬盘*/
                            }
    
                            OutputStream os = client.getOutputStream();
                            os.write("传输完成".getBytes());
    
                            bos.close();
                            client.close();
                        } catch(IOException e) {
                            e.printStackTrace();
                        }
    
                    }
                }.start();
    
            }
    
        }
    }
    
    
    
    import java.io.*;
    import java.net.ServerSocket;
    import java.net.Socket;
    
    public class Test05 {
        public static void main(String[] args) throws IOException {
            // http://localhost:8888/day21/web/index.html
            // GET  /day21/web/index.html HTTP/1.1
            ServerSocket ss = new ServerSocket(5678);
    
            while (true) {
                Socket client = ss.accept();
                new Thread() {
                    @Override
                    public void run() {
                        try {
                            InputStream is = client.getInputStream();
                            BufferedReader br = new BufferedReader(new InputStreamReader(is));  //将字节流转换为字符流,只有字符流才可以一次读一行
                            String line = br.readLine();//接收来自浏览器的网址,一行字符串
                            //System.out.println(line);
                            String[] split = line.split(" ");
                            String path = split[1].substring(1);   //   day21/web/index.html  /*无需将'/'改为"\"*/
                            System.out.println(path);
                            //读取浏览器需要的内容
                            FileInputStream fis = new FileInputStream(path);
    
                            OutputStream os = client.getOutputStream();
                            //响应给浏览器
                            os.write("HTTP/1.1 200 OK
    ".getBytes());
                            os.write("Content-Type:text/html
    ".getBytes());
                            os.write("
    ".getBytes());
    
                            int ch;
                            byte[] arr = new byte[1024];
                            while ((ch = fis.read(arr)) != -1) {
                                os.write(arr, 0, ch);
                            }
                            client.close();
                            fis.close();
                        } catch (Exception e) {
                            e.printStackTrace();
                        }
                    }
                }.start();
            }
        }
    }
  • 相关阅读:
    rest简单实例
    Rest简介
    java视频
    j2ee开发中的“java容器”和“web容器”有什么区别?
    用Java实现自己的ArrayList
    Java中关于枚举的7种用法
    Java多线程实现自然同步(内含演示案例)
    Java实现简单的文件复制
    Java之自动拆装箱
    写一个SingleTon,(饿最终、懒同步)
  • 原文地址:https://www.cnblogs.com/21556guo/p/13410930.html
Copyright © 2011-2022 走看看