zoukankan      html  css  js  c++  java
  • 在dos窗口演示简易聊天程序

    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.net.DatagramPacket;
    import java.net.DatagramSocket;
    import java.net.InetAddress;
    /*
    * 需求:
    * 从键盘录入数据进行发送,
    * 如果输入的是886那么客户端就结束输入数据。
    */

    public class SendDemo {
    public static void main(String[] args) throws IOException {
        System.out.println("发送端启动----------");
        //1,创建发送端socket服务对象
        DatagramSocket ds = new DatagramSocket();
        //封装键盘录入数据
        BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
        //2,创建数据包
        //创建发送的数据
        String line = null;
        while((line = bufr.readLine())!=null){
            if("886".equals(line)){
                break;
            }
            byte[] data = line.getBytes();
            //长度
            int len  = data.length;
            //ip地址对象
            InetAddress ip = InetAddress.getByName("60.168.207.89");//本机地址
            //端口号
             int port = 10010;
            DatagramPacket dp = new DatagramPacket(data,len,ip,port);
            //3,发送数据
            ds.send(dp);
        }
        //4,释放资源
        ds.close();
    }}
    
    import java.io.IOException;
    import java.net.DatagramPacket;
    import java.net.DatagramSocket;
    import java.net.InetAddress;
    public class ReceiveDemo {
    public static void main(String[] args) throws IOException {
        System.out.println("接收端启动----------");
        //1,创建接收端socket服务对象。
        DatagramSocket ds = new DatagramSocket(10010);
        while(true){
            //2,创建数据包(接受容器)
            //建立缓冲区,存储数据,构造DatagramPacket
            byte[] buf = new byte[1024];
            DatagramPacket dp = new DatagramPacket(buf, buf.length);
            //3,调用socket服务receive方法,接受数据,存放到数据包中
            ds.receive(dp);
            //4,解析数据包,显示在控制台
            int len = dp.getLength();
            //数据内容
            String text = new String(dp.getData(),0,len);
            //获取对方的ip
            InetAddress address = dp.getAddress();
            String ip = address.getHostAddress();
            System.out.println("from "+ip+" of data is "+text); 
        }
        //接收端应该一直开着等待接收数据,是不需要关闭的
        //ds.close();
    }}
    

    如果要在dos窗口演示,可以单独建立一个文件夹,
    封装以上两个Java类,编译运行一下就行,可以开
    三个窗口两个发送端,一个接受端。效果如图所示。

    这里写图片描述

    很多事情即将开始,很多人的命运即将改变
  • 相关阅读:
    listview右边显示 abcd快速选择
    显示密码
    欢迎界面动画
    web get Post测试
    使用MultiDexApplication
    获取当前运行的Activity信息
    MFC得到运行程序路径
    构建之法阅读笔记01
    个人作业1:随机生成四则运算
    软件工程第一步
  • 原文地址:https://www.cnblogs.com/liuzk/p/12458973.html
Copyright © 2011-2022 走看看