zoukankan      html  css  js  c++  java
  • Java网络编程实例---------------------------------基本HTTP客户端及服务端多线程

    HTTP 1.0客户端

    package com.bq;
    
    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.io.PrintWriter;
    import java.net.InetAddress;
    import java.net.Socket;
    
    public class Client {
        public Client() throws Exception {
            Socket server = new Socket(InetAddress.getLocalHost(), 8000);
            BufferedReader in = new BufferedReader(new InputStreamReader(
                    server.getInputStream()));
            PrintWriter out = new PrintWriter(server.getOutputStream());
            BufferedReader wt = new BufferedReader(new InputStreamReader(System.in));
            while (true) {
                String str = wt.readLine();
                out.println(str);
                out.flush();
                if (str.equals("end")) {
                    break;
                }
                System.out.println(in.readLine());
            }
            server.close();
        }
    
        public static void main(String[] args) throws Exception {
            new Client();
        }
    }

    HTTP Server

    package com.bq;
    
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.PrintWriter;
    import java.net.ServerSocket;
    import java.net.Socket;
    
    public class Server {
    
        public Server() throws IOException {
            ServerSocket server = new ServerSocket(8000);
            Socket client = server.accept();
            BufferedReader in = new BufferedReader(new InputStreamReader(
                    client.getInputStream()));
            PrintWriter out = new PrintWriter(client.getOutputStream());
            while (true) {
                String str = in.readLine();
                System.out.println(str);
                out.println("Receive from Client...." + str.toUpperCase());
                out.flush();
                if (str.equals("quit"))
                    break;
            }
            client.close();
        }
    
        public static void main(String[] args) throws IOException {
            new Server();
        }
    }

    HTTP Server 多线程

    package com.bq;
    
    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.io.PrintWriter;
    import java.net.ServerSocket;
    import java.net.Socket;
    
    public class ThreadedServer {
        public ThreadedServer() throws Exception {
            ServerSocket server = new ServerSocket(8000);
            int socketNo = 1;
            while (true) {
                Socket socket = server.accept();
                System.out.println("----Start For socket No" + socketNo + "------");
                System.out.println("The socket name ======="
                        + socket.getInetAddress().getHostName());
                HandleAsocket task = new HandleAsocket(socket);
                new Thread(task).start();
                socketNo++;
            }
        }
        public static void main(String[] args) throws Exception {
            new ThreadedServer();
        }
    }
    
    class HandleAsocket implements Runnable {
        private Socket socket;
    
        public HandleAsocket(Socket socket) {
            this.socket = socket;
        }
    
        @Override
        public void run() {
    
            try {
                BufferedReader in = new BufferedReader(new InputStreamReader(
                        socket.getInputStream()));
                PrintWriter out = new PrintWriter(socket.getOutputStream());
                while (true) {
                    String str = in.readLine();
                    System.out.println(str);
                    out.println("Receive from socket...." + str.toUpperCase());
                    out.flush();
                    if (str.equals("quit"))
                        break;
                }
                socket.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
    
        }
    }
  • 相关阅读:
    命令式语言和声明式语言对比——JavaScript实现快速排序为例
    merge sort 的javascript实现
    快速排序算法的简短描述
    Hadoop 2.x 版本的单机模式安装
    数据分析招聘网招聘信息分析报告
    使用PROC TRANSPOSE过程步对数据集进行转置时如何保持日期变量的时间顺序
    饼图微创意
    我的微博关键字
    QQ群成员发言次数统计(词云制作)
    在SAS数据步中执行过程步的简单示例
  • 原文地址:https://www.cnblogs.com/bq12345/p/3440784.html
Copyright © 2011-2022 走看看