这个是在参考了下老师给的代码^_^.比凌晨发的那个C实现的在界面上要友好很多..而且个人感觉更清晰...

import javax.swing.*;

import java.awt.event.*;

import javax.swing.Timer;

public class Sender

{

public static void main(String [] args)

{

String input;

int counter = 0;

int configure;

/* 输入要发送的数据 */

input = JOptionPane.showInputDialog("input the sending data!");

/* 为发送的数据包注册相应的时钟监听器 */

Timer aTimer = new Timer(5000 , new SenderListener(input , counter%2));

/* 启动时钟监听器 */

aTimer.start();

do

{

/* 接收回应方的相关信息 */

configure = answerToSender();

while(true)

{

/* 如果数据包已经成功接收,则终止相应的时钟监听器

/* 否则数据包重发,时钟监听器继续监听 */

if(configure == counter%2)

{

aTimer.stop();

break;

}

else configure = answerToSender();

}

input = JOptionPane.showInputDialog("continue?(Y/N)");

if(input.equals("N") || input.equals("n")) break;

input = JOptionPane.showInputDialog("input the sending data!");

aTimer = new Timer(5000 , new SenderListener(input , ++counter%2));

aTimer.start();

}while(true);

System.exit(0);

}

public static int answerToSender()

{

String input = JOptionPane.showInputDialog("response to sender(0/1)");

return Integer.parseInt(input);

}

}

/* 实现了ActionListener监听器接口的自定义类,在该类中必须实现

ActionListener接口中的actionPerformed(ActionEvent)方法,该

方法在时间间隔到达你所定义的时间间隔时会被自动调用 */

class SenderListener implements ActionListener

{

private String series;

private int sequenceNumber;

/* 构造器,在对象初始化时被调用 */    public SenderListener(String series ,int counter)   {      this.series = series;       sequenceNumber = counter;      System.out.println("the datas: '" + series + "' have been sended!/n"     + "          " + " and its sequence number is: " + sequenceNumber + "/n");    }    public void actionPerformed(ActionEvent aevent)   {      System.out.println("the datas: '" + series + "' recieved failurely!");      sendAgain();   }    public void sendAgain()   {      System.out.println("the datas: '" + series + "' have been sended again!/n");    }}

rdt协议的java实现_rdt3.0发送方程序(Java实现)相关推荐

  1. java se 9.0.4_jre 9下载(Java SE Runtime Environment)下载

    JRE9官方下载是运行JAVA程序不可缺少的环境.JRE中由ClassLoader负责查找和加载程序引用到的类库,基础类库ClassLoader会到rt.jar中自动加载,其它的类库,ClassLoa ...

  2. java广播数据包发送_在Java中广播UDP数据包的正确和有效方法是什么?

    我需要在每个网络接口上广播UDP数据包.起初,我尝试播放到255.255.255.255,没有结果,后来我发现这个"已被弃用了大约20年".因此,我尝试在每个网络接口上进行迭代,以 ...

  3. selenium java封装_selenium2.0的初步封装(java版本)

    我们都知道, 在本地创建java项目后,引入selenium-java-2.35.0.jar   selenium-support-2.35.0.jar junit-4.8.1.jar等等jar包之后 ...

  4. java curl json_POST请求发送json数据java HttpUrlConnection

    我开发了一个java代码,使用URL和HttpUrlConnection将以下cURL转换为java代码.卷曲是: curl -i 'http://url.com' -X POST -H " ...

  5. java 微信开发图片发送,微信开发?Java上传Base64图片

    class="java">import org.apache.commons.codec.binary.Base64; import org.apache.log4j.Log ...

  6. java实现一个跳转结构程序,Java程序设计基础(第6版)最新章节_鲜征征著_得间小说...

    4.3 分支结构 分支结构又称为选择结构,是一种在两种以上的多条执行路径中选择一条执行的控制结构,这里所说的执行路径是指一组语句.通常分支结构要先做一个判断,然后根据判断的结果来决定选择哪一条执行路径 ...

  7. java实现一个跳转结构程序,Java程序控制结构 - osc_12yjz2ym的个人空间 - OSCHINA - 中文开源技术交流社区...

    一.分支结构 概念:程序从两条或多条路径中选择一条去执行,这种结构称为分支结构 1. if结构 特点: ① 条件表达式的形式可以为: boolean的变量 boolean变量的赋值 关系表达式 逻辑表 ...

  8. java界面编程 视频,「小程序JAVA实战」小程序的横向视频和页面拦截(59)

    在手机拍摄视频的时候,存在2个情况,手机横这和手机竖着.如果是横着的情况下,我们竖着拿手机观看模式,包括抖音,快手,他们的解决方案都是上下出现黑色变宽,对视频进行等比例压缩.老铁我也参考这个来完成.另 ...

  9. 【计算机网络】数据链路层 : 选择重传协议 SR ( 帧分类 | “发送方“ 确认帧、超时事件 | “接受方“ 接收帧机制 | 滑动窗口长度 | 计算示例 )★

    文章目录 一. 选择重传协议 ( SR ) 引入 二. 选择重传协议 ( SR ) 帧分类 三. 发送方 事件 ( 确认帧.超时事件 ) 四. 接收方 事件 ( 接收帧 ) 五. 滑动窗口长度 五. ...

  10. 黑莓管理器6.0_BlackBerry Java SDK 7.0 Beta发布

    黑莓管理器6.0 BlackBerry Java SDK 7.0 Beta发布 BlackBerry Java SDK 7.0版的测试版现已发布. 该SDK包括用于BlackBerry Bold 99 ...

最新文章

  1. 2022-2028年中国老年旅游市场深度调研及开发战略研究报告
  2. ideal如何创建dynamic web project
  3. 线程的挂起是错误的概念实际是线程的阻塞,挂起只针对进程,将进程挂起会将进程从内存空间交换到磁盘空间的过程
  4. MyTask - old implementation - getEntitySet
  5. python字母大小写排序_Python中sorted()排序与字母大小写的问题
  6. python autoit上传文件_结合python+selenium使用AutoIt V3实现文件、图片上传
  7. 【面试收藏】Redis最全面试题
  8. java filter教程_Java Web Filter 过滤器学习教程(推荐)
  9. 初学python需要安装哪些-致Python初学者 Anaconda入门使用指南完整版
  10. 7 | Spatial-based GNN/convolution模型之GrapySAGE
  11. 从零开始刷Leetcode——数组(697.717.724)
  12. c++中获取蓝图组件_Vue组件通信方式居然有这么多?你了解几种
  13. 第1节 kafka消息队列:5、javaAPI操作
  14. VBM_DARTEL算法对灰质变化的计算
  15. Elasticsearch安装与分词插件、用户词典、同义词配置等
  16. 计算机5级什么水平考试,怎么选择2015计算机等级考试级别
  17. FIT/WeFIT 开发者冯华君采访
  18. Ubuntu Server 20.04 设置静态 IP
  19. 关于双非本科2020秋招,我想说的
  20. 华为云-软件产品案例分析

热门文章

  1. python打印日历_python 打印日历
  2. 页面导航-声明式/编程式导航
  3. GB/T 20984-2022《信息安全技术 信息安全风险评估方法》解读
  4. android共享局域网打印,Android 浅谈同一局域网下使用WiFi连接打印机
  5. 计算机无法找到网络打印机,为何搜索不到局域网打印机_解决win7找不到网络打印机的问题...
  6. 30条html代码编写规范
  7. 响应式原理(Vue2.x)下篇
  8. Error Client wants topic A to have B, but our version has C. Dropping connection.
  9. 报错PyTorch is not compiled with NCCL support
  10. 通过添加css样式cursor属性,改变鼠标的外形,变成放大镜