91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 5KB
    文件類型: .cpp
    金幣: 1
    下載: 0 次
    發(fā)布日期: 2021-06-11
  • 語言: C/C++
  • 標簽: C語言??

資源簡介

能輸入窗口大小,傳輸?shù)牡谝粋€字節(jié)號,能實現(xiàn)滑動窗口的動態(tài)滑動過程,發(fā)送方發(fā)送字節(jié),接收方將按順序接受的字節(jié)直接交給上層程序,錯序的字節(jié)先儲存在鏈表中,等到它之前的字節(jié)順序到達后再一起交給上層程序。之后發(fā)送窗口向前移動。。。

資源截圖

代碼片段和文件信息

#include
#include
#include
main()
{
struct?swphdr
{
unsigned?long??seqnum;
unsigned?long??acknum;
unsigned?short?flags;?/*flag=0表示這是一個數(shù)據(jù)幀,flag=1表示這是一個ACK幀*/
};
struct?sendq_slot?
{
unsigned?short?timeout;/*1時表示計時啟動,0時表示已收到確認*/
unsigned?long??msg;
struct?sendq_slot?*next;
};
????struct?recvq_slot?
{
unsigned?short?received;/*1表示順序接收,0表示錯序接受*/
unsigned?long??msg;
struct?recvq_slot?*next;
};
struct?swpstate
{
unsigned?long??lar;
unsigned?long??lfs;
unsigned?long?sws;
struct?swphdr??hdr;
unsigned?long?rws;
struct?sendq_slot?*sendq;
unsigned?long??nfe;
struct?recvq_slot?*head;
}swpstate1;
unsigned?long?a;
int?flagb;
/*發(fā)送*/
struct?sendq_slot?*sendq_rear*sendp*p3*p4;
struct?recvq_slot?*recvp*recvq_rear*p1*p2;
swpstate1.head=NULL;
swpstate1.sendq=sendq_rear=(struct?sendq_slot*)malloc(sizeof(struct?sendq_slot));
????if(!swpstate1.sendq)?exit(1);
????sendq_rear->next=NULL;
printf(“請輸入窗口大小:“);
scanf(“%ld“&swpstate1.sws);
swpstate1.rws=swpstate1.sws;
if?(swpstate1.sws>0)
{
??printf(“請輸入第一幀的序列號:“);
??scanf(“%ld“&swpstate1.hdr.seqnum);
}
swpstate1.nfe=swpstate1.hdr.seqnum;
sendp=(struct?sendq_slot*)malloc(sizeof(struct?sendq_slot));
if(!sendp)?exit(1);
sendp->msg=swpstate1.hdr.seqnum;
sendp->timeout=1;
sendp->next=NULL;
sendq_rear->next=sendp;
sendq_rear=sendp;
--swpstate1.sws;
swpstate1.lfs=swpstate1.hdr.seqnum;
swpstate1.lar=swpstate1.hdr.seqnum;
do
{
while(swpstate1.sws>0)
{
sendp=(struct?sendq_slot*)malloc(sizeof(struct?sendq_slot));
????????if(!sendp)?exit(1);
????????sendp->msg=swpstate1.lfs+1;
????????sendp->timeout=1;
????????sendp->next=NULL;
????????sendq_rear->next=sendp;
????????sendq_rear=sendp;
????????--swpstate1.sws;
????????++swpstate1.lfs;
}
????swpstate1.hdr.acknum=0;
????swpstate1.hdr.flags=0;
printf(“最近收到的ACK的幀序號:%ld\n“swpstate1.lar);
printf(“最近發(fā)送的幀序號(發(fā)送新幀后):%ld\n“swpstate1.lfs);
/*接收*/

???if(swpstate1.hdr.flags==0)
???{
???
???do
???{
??????printf(“請輸入收到的數(shù)據(jù)幀號:“);
??????scanf(“%ld“&a);
??if(a>=swpstate1.nfe&&a<=swpstate1.lfs)
??{
??if(swpstate1.head==NULL)
??{

評論

共有 條評論