资源简介
使用java语言模拟GBN网络协议。包含3个应用文件,3个源文件,1个使用说明。
可以模拟丢包,包差错,正常传送等情况,并且用图形化的方式显示出来。是居家旅行之极品。
代码片段和文件信息
package com.wuyadong.gbnreceiver;
import java.io.IOException;
import java.io.objectInputStream;
import java.io.objectOutputStream;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Date;
import javax.swing.JLabel;
import javax.swing.JTextArea;
import com.wuyadong.valueBean.Packet;
public class GBNReceiver {
//服务器
String serverIP = “127.0.0.1“;
int serverPort = 2345;
objectOutputStream outputStream = null;
objectInputStream inputStream = null;
Socket clientSocket = null;
//发送方,接受方
Sender sender;
Reciever reciever;
int expectedseqnum;
Packet sndpkt = null;
//记录器
String record = null;
private JTextArea textArea = null;
private JLabel label = null;
public void setPara(String ip)
{
this.serverIP = ip;
}
public void updateRecord()
{
this.textArea.setText(record);
this.label.setText(“expectedseqnum: “+expectedseqnum);
}
public GBNReceiver(JTextArea textAreaJLabel label)
{
this.textArea = textArea;
this.label = label;
sender = new Sender();
reciever = new Reciever();
//初始化expectedseqnumsndpkt
record = “初始化sndpktexpectedseqnum\n“;
expectedseqnum = 0;
this.updateRecord();
int checksum = sender.count_checksum(“ACK“);
sndpkt = sender.make_pkt(-1 “ACK“ checksum);
}
//建立连接,构造输入输出流
public void connect()
{
try {
clientSocket = new Socket(this.serverIPthis.serverPort);
this.outputStream = new objectOutputStream
(clientSocket.getOutputStream());
this.inputStream = new objectInputStream
(clientSocket.getInputStream());
record += “连接服务器成功\n“;
this.updateRecord();
//启动reciever类
new Thread(this.reciever).start();
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void close()
{
record += “关闭连接“;
try {
this.inputStream.close();
this.outputStream.close();
this.clientSocket.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
class Sender{
//目标地址,源地址
String source = “127.0.0.1“ ;
int sourceport=2345 ;
String destination = “127.0.0.1“ ;
int destinationport=2345 ;
public Packet make_pkt(int expectedSeqnumString data
int checksum)
{
//构建一个packet
Packet packet = new Packet(data
checksumsourcedestination
sourceportdestinationportexpectedSeqnum);
return packet;
}
//用哈希码进行check
int count_checksum(String data)
{
int sum = 0;
for(int i = 0;i < data.length();i ++)
sum += data.charAt(i);
return sum;
}
public void udt_send(Packet packet)
{
System.out.println(“发送packet包“);
try {
outputStream.writeobject(packet);
} catch (IOException e) {
- 上一篇:android成绩查询系统
- 下一篇:回溯法解决旅行售货员问题源代码java
相关资源
- 回溯法解决旅行售货员问题源代码j
- mysql-connector-java-5.1.45-bin.jar
- jsp商品列表分页技术
- Java+Web的网上选课系统Java源码
- java++jsp+网络电视代码源码整理
- 公交管理系统带论文Java源码
- Java实现图像的模糊与锐化Java实用源码
- java+swing+画图板Java实用源码整理lear
- Java超市进销存系统毕业设计完整版源
- java_图形化界面-流水作业最优调度问
- J2EE企业人事管理系统()SSH
- java++jsp+网络电视代码
- Java+固定资产管理系统课程设计源代码
- J2EE企业人事管理系统()SSH源码整理
- java+js+不规则区域地图+中国+省份+加亮
- 电器商城小系统Java源码
- JAVA技术实现的搜索引擎(含源码)
- Java+Web之高级应用Java实用源码整理l
- java网络留言板Java源码
- JAVA课程设计-画图板含文档、源码源码
- java项目实践之模拟电梯系统Java源码
- Java学籍管理系统135073
- 一个java做的国际象棋小游戏
- 简易javaATM项目
- java程序里实现ssh scp sftp
- 银行排队模拟程序 Java课程设计 源代
- java socket 视频流转发socket
- java版扫雷,300行,带注释
- 矩阵的相关运算gui界面设计的
- 蜘蛛纸牌 java实现
评论
共有 条评论