rdt协议的java实现_rdt3.0发送方程序(Java实现)
这个是在参考了下老师给的代码^_^.比凌晨发的那个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实现)相关推荐
- java se 9.0.4_jre 9下载(Java SE Runtime Environment)下载
JRE9官方下载是运行JAVA程序不可缺少的环境.JRE中由ClassLoader负责查找和加载程序引用到的类库,基础类库ClassLoader会到rt.jar中自动加载,其它的类库,ClassLoa ...
- java广播数据包发送_在Java中广播UDP数据包的正确和有效方法是什么?
我需要在每个网络接口上广播UDP数据包.起初,我尝试播放到255.255.255.255,没有结果,后来我发现这个"已被弃用了大约20年".因此,我尝试在每个网络接口上进行迭代,以 ...
- selenium java封装_selenium2.0的初步封装(java版本)
我们都知道, 在本地创建java项目后,引入selenium-java-2.35.0.jar selenium-support-2.35.0.jar junit-4.8.1.jar等等jar包之后 ...
- java curl json_POST请求发送json数据java HttpUrlConnection
我开发了一个java代码,使用URL和HttpUrlConnection将以下cURL转换为java代码.卷曲是: curl -i 'http://url.com' -X POST -H " ...
- java 微信开发图片发送,微信开发?Java上传Base64图片
class="java">import org.apache.commons.codec.binary.Base64; import org.apache.log4j.Log ...
- java实现一个跳转结构程序,Java程序设计基础(第6版)最新章节_鲜征征著_得间小说...
4.3 分支结构 分支结构又称为选择结构,是一种在两种以上的多条执行路径中选择一条执行的控制结构,这里所说的执行路径是指一组语句.通常分支结构要先做一个判断,然后根据判断的结果来决定选择哪一条执行路径 ...
- java实现一个跳转结构程序,Java程序控制结构 - osc_12yjz2ym的个人空间 - OSCHINA - 中文开源技术交流社区...
一.分支结构 概念:程序从两条或多条路径中选择一条去执行,这种结构称为分支结构 1. if结构 特点: ① 条件表达式的形式可以为: boolean的变量 boolean变量的赋值 关系表达式 逻辑表 ...
- java界面编程 视频,「小程序JAVA实战」小程序的横向视频和页面拦截(59)
在手机拍摄视频的时候,存在2个情况,手机横这和手机竖着.如果是横着的情况下,我们竖着拿手机观看模式,包括抖音,快手,他们的解决方案都是上下出现黑色变宽,对视频进行等比例压缩.老铁我也参考这个来完成.另 ...
- 【计算机网络】数据链路层 : 选择重传协议 SR ( 帧分类 | “发送方“ 确认帧、超时事件 | “接受方“ 接收帧机制 | 滑动窗口长度 | 计算示例 )★
文章目录 一. 选择重传协议 ( SR ) 引入 二. 选择重传协议 ( SR ) 帧分类 三. 发送方 事件 ( 确认帧.超时事件 ) 四. 接收方 事件 ( 接收帧 ) 五. 滑动窗口长度 五. ...
- 黑莓管理器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 ...
最新文章
- 2022-2028年中国老年旅游市场深度调研及开发战略研究报告
- ideal如何创建dynamic web project
- 线程的挂起是错误的概念实际是线程的阻塞,挂起只针对进程,将进程挂起会将进程从内存空间交换到磁盘空间的过程
- MyTask - old implementation - getEntitySet
- python字母大小写排序_Python中sorted()排序与字母大小写的问题
- python autoit上传文件_结合python+selenium使用AutoIt V3实现文件、图片上传
- 【面试收藏】Redis最全面试题
- java filter教程_Java Web Filter 过滤器学习教程(推荐)
- 初学python需要安装哪些-致Python初学者 Anaconda入门使用指南完整版
- 7 | Spatial-based GNN/convolution模型之GrapySAGE
- 从零开始刷Leetcode——数组(697.717.724)
- c++中获取蓝图组件_Vue组件通信方式居然有这么多?你了解几种
- 第1节 kafka消息队列:5、javaAPI操作
- VBM_DARTEL算法对灰质变化的计算
- Elasticsearch安装与分词插件、用户词典、同义词配置等
- 计算机5级什么水平考试,怎么选择2015计算机等级考试级别
- FIT/WeFIT 开发者冯华君采访
- Ubuntu Server 20.04 设置静态 IP
- 关于双非本科2020秋招,我想说的
- 华为云-软件产品案例分析
热门文章
- python打印日历_python 打印日历
- 页面导航-声明式/编程式导航
- GB/T 20984-2022《信息安全技术 信息安全风险评估方法》解读
- android共享局域网打印,Android 浅谈同一局域网下使用WiFi连接打印机
- 计算机无法找到网络打印机,为何搜索不到局域网打印机_解决win7找不到网络打印机的问题...
- 30条html代码编写规范
- 响应式原理(Vue2.x)下篇
- Error Client wants topic A to have B, but our version has C. Dropping connection.
- 报错PyTorch is not compiled with NCCL support
- 通过添加css样式cursor属性,改变鼠标的外形,变成放大镜