• 多线程 聊天程序


    package Ltian;//服务器
    import java.net.ServerSocket;
    import java.net.Socket;

    public class L1 {
     public static void main(String[] args) {
      try{
       ServerSocket ss = new   ServerSocket(9898);
       Socket server = ss.accept();
      new Thread(new L3(server.getInputStream())).start();
      new Thread(new L4("服务器",server.getOutputStream())).start();
       
       
      }catch(Exception e) {
       
      }
     }
     private static void ServerSocket() {
      
      
     }
    }
    2.//客户端
    package Ltian;
    import java.net.ServerSocket;
    import java.net.Socket;
    public class L2 {
     
      public static void main(String[] args) {
       try{
        Socket c = new   Socket("192.168.0.116",9898);
        
       new Thread(new L3(c.getInputStream())).start();
       new Thread(new L4("王情报",c.getOutputStream())).start();
        
        
       }catch(Exception e) {
        
       }
     }
    }
    三 //发送消息
    package Ltian;
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    public class L3 implements Runnable{
          private InputStream is;
     @Override
     public void run() {
      BufferedReader br = new BufferedReader(new InputStreamReader(is));
      while(true) {
       String mess;
       try {
        mess = br.readLine();
        System.out.println(mess + " ");
       } catch (IOException e) {
        System.out.println("再见啊妹妹");
        break;
        
        
       }
      }
      
      
     }
     public L3(InputStream is) {
      super();
      this.is = is;
     }
     public L3() {
      super();
      
     }
     public InputStream getIs() {
      return is;
     }
     public void setIs(InputStream is) {
      this.is = is;
     }
     
      
     }
     四//接收消息
    package Ltian;
    import java.io.OutputStream;
    import java.io.PrintWriter;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.Scanner;
    public class L4 implements Runnable{
     private String from;
     private OutputStream os;
     public String getFrom() {
      return from;
     }
     public void setFrom(String from) {
      this.from = from;
     }
     public OutputStream getOs() {
      return os;
     }
     public void setOs(OutputStream os) {
      this.os = os;
     }
     @Override
     public void run() {
      PrintWriter out = new PrintWriter(os);
      SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
      while(true){
       Scanner sc = new Scanner(System.in);
       String msg =  from + ":"+sc.nextLine()+"["+sdf.format(new Date())+"] ";
       out.print(msg);
       out.flush();
      }
      
     }
     public L4(String from, OutputStream os) {
      super();
      this.from = from;
      this.os = os;
     }
     public L4() {
      super();
      
     }
     
    }
  • 相关阅读:
    unity 用LineRender画四边形并测面积
    unity读取Texture文件并转为Sprit
    unity shader入门(四):高光
    unity shader入门(三)逐像素光照,Blinn-Phong模型
    unity shader入门(二)语义,结构体,逐顶点光照
    unity shader入门(一):基本结构话痨版
    好多坑,好多好多坑(1)
    点击按钮收缩功能
    unity 实现技能释放
    ugui用户定义操作按键
  • 原文地址:https://www.cnblogs.com/wangqianbao/p/13159937.html
Copyright © 2020-2023  润新知