当前位置:   article > 正文

【网络编程】使用Java编写简单的UDP在线咨询程序.(狂神说版)_java 实现在线咨询功能

java 实现在线咨询功能


前言

视频教程原地址:

https://www.bilibili.com/video/BV1LJ411z7vY?p=11


一、效果图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、编写步骤

1.发送端类

新建一个类TalkSend实现Runnable的接口。重写run()方法定义三个变量(属性),分别是来自哪里的端口号,发送到那个IP,发送到那个IP的端口号。

    private int fromPort; // 来自哪里的端口号。
    private String toIP;// 发送到那个IP。
    private int toPort; // 发送到哪里的端口号。
  • 1
  • 2
  • 3

接着实现构造方法,把三个参数传进来,写成完整的构造器。

 public TalkSend(int fromPort, String toIP, int toPort) {
   
        this.fromPort = fromPort;
        this.toIP = toIP;
        this.toPort = toPort;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

然后想一想需要输入句子,传递字符串过去那么必定涉及到流的知识,在run()方法中 创建BufferedReader对象,并调用它的readLine()方法。紧接着获取输入字符串的字节并返回给datas,把他打包起来发出去即可。
代码如下:

 			while (true) {
   
            try {
   
                String data = reader.readLine();// 读这一行的结果返回给data.
                byte[] datas = data.getBytes(); // 获取的输入的字符的字节。
                DatagramPacket packet = new DatagramPacket(datas, 0, datas.length, new InetSocketAddress(this.toIP, this.toPort));
//                把datas通过DatagramPacket对象包裹起来送出去,填写对应的要送到的地方也就是IP和端口号。
                socket.send(packet);  // 调用socket对象的send方法,把“包裹”发送出去。
                if (data.equals("bye")) {
     // 如果输入到字符bye,则结束聊天。
                    break;
                }
            
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/440633
推荐阅读
相关标签
  

闽ICP备14008679号