package com.ouc.tcp.test;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import com.ouc.tcp.client.TCP_Receiver_ADT;
import com.ouc.tcp.message.*;
import com.ouc.tcp.tool.TCP_TOOL;
public class TCP_Receiver extends TCP_Receiver_ADT {
private TCP_PACKET ackPack; //回复的ACK报文段
/*构造函数*/
public TCP_Receiver() {
super(); //调用超类构造函数
super.initTCP_Receiver(this); //初始化TCP接收端
}
@Override
//接收到数据报:设置回复的ACK报文段
public void rdt_recv(TCP_PACKET recvPack) {
//生成ACK报文段(设置确认号)
tcpH.setTh_ack(recvPack.getTcpH().getTh_seq());
ackPack = new TCP_PACKET(tcpH, tcpS, recvPack.getSourceAddr());
//回复ACK报文段
reply(ackPack);
//将接收到的正确有序的数据插入data队列,准备交付
dataQueue.add(recvPack.getTcpS().getData());
//交付数据(每20组数据交付一次)
if(dataQueue.size() == 20) {
deliver_data();
}
System.out.println();
}
@Override
//交付数据(将接收到的正确有序的数据写入文件)
public void deliver_data() {
File fw = new File("recvData.txt");
BufferedWriter writer;
try {
writer = new BufferedWriter(new FileWriter(fw, true));
//循环检查data队列中是否有新交付数据
while(!dataQueue.isEmpty()) {
int[] data = dataQueue.poll();
//将数据写入文件
for(int i = 0; i < data.length; i++) {
writer.write(data[i] + "\n");
}
writer.flush(); //清空输出缓存
}
writer.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
//回复ACK报文段
public void reply(TCP_PACKET replyPack) {
//设置错误控制标志
tcpH.setTh_eflag((byte)0); //eFlag=0,信道无错误
//发送数据报
client.send(replyPack);
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
java Tcp协议验证 (102个子文件)
TCP_Receiver.class 2KB
TCP_Sender.class 822B
TestRun.class 508B
CheckSum.class 472B
.classpath 517B
stylesheet.css 1KB
inherit.gif 57B
TCP_HEADER.html 33KB
WriteLogFile.html 23KB
ListenPacket.html 22KB
ListenACK.html 22KB
ForwardDelay.html 22KB
TCP_PACKET.html 22KB
RunServer.html 22KB
TCP_Sender_ADT.html 19KB
TCP_PACKET.html 17KB
TCP_SEGMENT.html 16KB
TCP_Receiver_ADT.html 15KB
TransLog.html 14KB
Client.html 14KB
index-11.html 14KB
UDT_RetransTask.html 14KB
index-5.html 14KB
Constant.html 14KB
Server.html 13KB
SYS_INI.html 13KB
UDT_Timer.html 12KB
SystemStart.html 12KB
MSG_STREAM.html 11KB
App_Sender.html 11KB
index-12.html 10KB
TCP_SEGMENT.html 10KB
overview-tree.html 10KB
TCP_HEADER.html 10KB
serialized-form.html 10KB
index-10.html 9KB
Client.html 9KB
index-2.html 9KB
package-use.html 9KB
help-doc.html 8KB
TransLog.html 8KB
package-tree.html 8KB
index-7.html 8KB
package-tree.html 7KB
package-summary.html 7KB
index-13.html 7KB
index-8.html 7KB
index-1.html 7KB
index-14.html 7KB
index-4.html 7KB
package-summary.html 7KB
package-tree.html 7KB
index-6.html 7KB
package-summary.html 7KB
package-use.html 7KB
package-use.html 7KB
package-tree.html 7KB
index-9.html 6KB
package-summary.html 6KB
package-summary.html 6KB
index-3.html 6KB
package-tree.html 6KB
overview-summary.html 6KB
TCP_Receiver_ADT.html 6KB
UDT_RetransTask.html 6KB
TCP_Sender_ADT.html 6KB
WriteLogFile.html 6KB
ForwardDelay.html 6KB
ListenPacket.html 6KB
MSG_STREAM.html 6KB
ListenACK.html 6KB
UDT_Timer.html 6KB
Constant.html 6KB
SystemStart.html 6KB
SYS_INI.html 6KB
App_Sender.html 6KB
Server.html 6KB
RunServer.html 6KB
package-use.html 5KB
package-use.html 5KB
constant-values.html 5KB
deprecated-list.html 5KB
allclasses-frame.html 3KB
allclasses-noframe.html 3KB
overview-frame.html 1KB
package-frame.html 1KB
index.html 1KB
package-frame.html 1KB
package-frame.html 1KB
package-frame.html 1KB
package-frame.html 979B
Config.ini 152B
TCP_TestDoc.jar 154KB
TCP_TestSys.jar 30KB
TCP_Receiver.java 2KB
TCP_Sender.java 1KB
CheckSum.java 317B
TestRun.java 203B
package-list 98B
org.eclipse.jdt.core.prefs 598B
共 102 条
- 1
- 2
资源评论
ns7381
- 粉丝: 1
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于MFC的校园导航程序(使用最短路径dijkstra算法).rar
- Android Studio android APP 视频作为视图背景需要源代码或想了解其实现原理的可以私心我
- com.ZeroneGames.GreenProject.apk
- Python自动化开发入门教程
- 4399GameSem_116_13955_207551_6.apk
- python 3.9.19源码编译包
- php-8.2.18-Win32-vs16-x64.rar
- 字节跳动青训营-抖音项目
- SQL资料手册,语句教程,高级查询语句语法
- 上位机和串口建立 Modbus 协议进行数据传输,并使用 Mysql 数据库存储,能够实现实时温湿度显示和动态变化曲线,历史数据
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功