zoukankan      html  css  js  c++  java
  • 2018.1.1T19-B3-U3jiangyi

    package com.xdf.tcp;

    import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.net.ServerSocket; import java.net.Socket;

    /**  *  服务器  ===》超市  */ public class ServerSocketDemo {

     public static void main(String[] args) {   ServerSocket serverSocket = null; // 超市   Socket socket = null; // 顾客   InputStream inputStream = null; // 购物车   BufferedReader br = null; // 收银员   OutputStream outputStream = null; // 收银员的反馈   try {    // 在指定的位置创建一个超市    serverSocket = new ServerSocket(8800);    // 超市开门等待 顾客上门    socket = serverSocket.accept();    // 顾客开始购物    inputStream = socket.getInputStream();    // 收银员进行多次扫码    br = new BufferedReader(new InputStreamReader(inputStream));    String line = null;    while ((line = br.readLine()) != null) {     System.out.println("您购买的商品是===》" + line);    }    // 结束购物 不代表顾客 走出超市    socket.shutdownInput();    // 打开输出流 给顾客回馈 购物清单    outputStream = socket.getOutputStream();    outputStream.write("欢迎您下次光临".getBytes());   } catch (IOException e) {    e.printStackTrace();   } finally { // 释放资源    try {     outputStream.close();     socket.close();     br.close();     inputStream.close();     serverSocket.close();    } catch (IOException e) {     e.printStackTrace();    }   }

    *************************************************

    package com.xdf.tcp;

    import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.net.Socket; import java.net.UnknownHostException;

    /**  * 客户端 ====》顾客  */ public class SocketDemo {

     public static void main(String[] args) {

      Socket socket = null; // 顾客   OutputStream outputStream = null;// 钱包   InputStream inputStream = null; // 收银员的回馈信息 购物清单   BufferedReader br = null; // 获取收银员的回馈信息   try {    socket = new Socket("localhost", 8800);    outputStream = socket.getOutputStream(); // 钱 从钱包出去    outputStream.write("回家的车票".getBytes());    // 购物完毕    socket.shutdownOutput();

       // 接收收银员的回馈信息    inputStream = socket.getInputStream();    br = new BufferedReader(new InputStreamReader(inputStream));    String line = null;    while ((line = br.readLine()) != null) {     System.out.println("收银员给我们的回馈信息是===》" + line);    }   } catch (UnknownHostException e) {    e.printStackTrace();   } catch (IOException e) {    e.printStackTrace();   } finally { // 释放资源    try {     br.close();     inputStream.close();     outputStream.close();     socket.close();    } catch (IOException e) {     e.printStackTrace();    }

      }

     }

    }

    **********************************

    package com.xdf.tcp.thread;

    import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.ObjectOutputStream; import java.io.OutputStream; import java.net.Socket; import java.net.UnknownHostException;

    /**  * 客户端1  */ public class Client {

     public static void main(String[] args) {   Socket socket = null;   InputStream inputStream = null;   OutputStream outputStream = null;   // 序列化   ObjectOutputStream oos = null;   BufferedReader br = null;   try {    // 创建客户端对象    socket = new Socket("localhost", 8800);    // 打开对应的输入和输出流    inputStream = socket.getInputStream();    outputStream = socket.getOutputStream();    // 用户开始登录    User user = new User("第一个用户", "111111");    // 序列化 给 服务器    oos = new ObjectOutputStream(outputStream);    oos.writeObject(user);    socket.shutdownOutput();

       // 接收服务器的回馈信息    br = new BufferedReader(new InputStreamReader(inputStream));    String line = null;    while ((line = br.readLine()) != null) {     System.out.println("服务器给我们的回馈信息是===》" + line);    }   } catch (UnknownHostException e) {    e.printStackTrace();   } catch (IOException e) {    e.printStackTrace();   } finally { // 释放资源    try {     br.close();     socket.close();     oos.close();     outputStream.close();     inputStream.close();    } catch (IOException e) {     e.printStackTrace();    }   }

     }

    }**************************

    package com.xdf.tcp.thread;

    import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.ObjectOutputStream; import java.io.OutputStream; import java.net.Socket; import java.net.UnknownHostException;

    /**  * 客户端2  */ public class Client2 {

     public static void main(String[] args) {   Socket socket = null;   InputStream inputStream = null;   OutputStream outputStream = null;   // 序列化   ObjectOutputStream oos = null;   BufferedReader br = null;   try {    // 创建客户端对象    socket = new Socket("localhost", 8800);    // 打开对应的输入和输出流    inputStream = socket.getInputStream();    outputStream = socket.getOutputStream();    // 用户开始登录    User user = new User("第二个用户", "222222");    // 序列化 给 服务器    oos = new ObjectOutputStream(outputStream);    oos.writeObject(user);    socket.shutdownOutput();

       // 接收服务器的回馈信息    br = new BufferedReader(new InputStreamReader(inputStream));    String line = null;    while ((line = br.readLine()) != null) {     System.out.println("服务器给我们的回馈信息是===》" + line);    }   } catch (UnknownHostException e) {    e.printStackTrace();   } catch (IOException e) {    e.printStackTrace();   } finally { // 释放资源    try {     br.close();     socket.close();     oos.close();     outputStream.close();     inputStream.close();    } catch (IOException e) {     e.printStackTrace();    }   }

     }

    }

    *****************************

    import java.io.IOException; import java.net.ServerSocket; import java.net.Socket;

    /**  * 服务器  */ public class Server {

     public static void main(String[] args) {

      ServerSocket serverSocket = null;   Socket socket = null;

      try {    // 实例化服务器    serverSocket = new ServerSocket(8800);    // 服务器 一直 开启 24营业    while (true) {     socket = serverSocket.accept();     // 每个顾客对应一个线程     UserThread thread = new UserThread(socket);     thread.start();    }

      } catch (IOException e) {    e.printStackTrace();   }  }

    **********************************

    package com.xdf.tcp.thread;

    import java.io.Serializable;

    public class User implements Serializable { // 用户的实体类

     private String name;// 用户名  private String password; // 密码

     public String getName() {   return name;  }

     public void setName(String name) {   this.name = name;  }

     public String getPassword() {   return password;  }

     public void setPassword(String password) {   this.password = password;  }

     public User() {   super();  }

     public User(String name, String password) {   super();   this.name = name;   this.password = password;  }

     @Override  public String toString() {   return "User [name=" + name + ", password=" + password + "]";  }

    }*************************************

    package com.xdf.tcp.thread;

    import java.io.IOException; import java.io.InputStream; import java.io.ObjectInputStream; import java.io.OutputStream; import java.net.Socket;

    /**  * 用户的线程类   服务器端使用  */ public class UserThread extends Thread {  /**   * 因为run方法中要使用 定义成 全局变量   */  Socket socket = null;

     public UserThread(Socket socket) {   this.socket = socket;  }

     /**   * 获取登录用户的信息   输入流   * 并且给用户一个反馈   输出流   */  @Override  public void run() {   InputStream inputStream = null;   OutputStream outputStream = null;   // 反序列化 才能获取User对象的信息   ObjectInputStream ois = null;   try {    inputStream = socket.getInputStream();    outputStream = socket.getOutputStream();    ois = new ObjectInputStream(inputStream);    User user = (User) ois.readObject(); // 获取登录的用户信息    System.out.println("您的用户名是===》" + user.getName());    System.out.println("您的密码是===》" + user.getPassword());    socket.shutdownInput(); // 关闭用户的输入流    // 给用户的回馈信息    outputStream.write("恭喜您登录成功".getBytes());   } catch (IOException e) {    e.printStackTrace();   } catch (ClassNotFoundException e) {    e.printStackTrace();   } finally { // 释放资源    try {     outputStream.close();     socket.close();     ois.close();     inputStream.close();    } catch (IOException e) {     e.printStackTrace();    }   }

     }

    }

    *

  • 相关阅读:
    朴素贝叶斯分类及应用
    【会员动态】2015ADM | 王牌先生,带你体验当代绅士的生活美学-浙江省创意设计协会-微头条(wtoutiao.com)
    【独家】专注男士着装搭配服务,王牌先生获华旦领投近500万天使融资 | 猎云网
    原木色衣架色系【价格 批发 品牌 网上进货】-阿里巴巴旺铺
    阿里管理三板斧:揪头发、照镜子、闻味道-天下网商
    阿里巴巴管理三板斧
    ISC 2016
    港澳通行证签注可以自助办理了 三分钟搞定
    中国“四大”名绣之苏绣_张家睿_新浪博客
    CoolCTO
  • 原文地址:https://www.cnblogs.com/xiaoxiao1016/p/8215772.html
Copyright © 2011-2022 走看看