亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? global.cpp

?? 網絡編程
?? CPP
字號:
#include "stdafx.h"
#include "global.h"

mytcp*th;
int fla;
int rrlen;
int mytcp::mycreat(int port)
{this->sum=2;
this->rhead.len=0;
rrlen=0;
th=this;
this->isreceve=0;
rhead.len=0;
start=&shead;
//rhead=&rhead;

return Create(port,SOCK_DGRAM);

}
int mytcp::myconnect(CString ip,int port)
{
this->isserve=0;
node s;
node *r=new node;
s.synflag=0;
s.senumber=160;
mysyn=160;
this->SendTo((void*)&s,sizeof(node),port,ip);
int chaoshi=0;
int j=0;
for(;;)
{
chaoshi++;
if(chaoshi>=30000)
{chaoshi=0;
	j++;
if(j>50000)
{CString gg;
gg.Format("connect超時%d",j);
AfxMessageBox(gg);
break;
}
}
if(receive==1)
{
int ret=Receive(r,sizeof(node));
receive=0;
dsyn=r->senumber+1;
if(r->acknumber!=mysyn+1)
{CString ll;
ll.Format("序列號錯誤%d,%d",r->acknumber,r->senumber);
AfxMessageBox(ll);
}
else
{AfxMessageBox("hahahah!");
this->ip=ip;
this->port=port;
break;
}}
}
this->isserve=1;
this->mysyn++;
this->dsyn=201;
AfxMessageBox("cli連接成功");
return 1;
}

void mytcp::OnReceive(int nErrorCode) 
{
	if(nErrorCode==0)
{
receive=1;
node s;
if(th->isserve==1)
{
th->ReceiveFrom(&s,sizeof(node),th->ip,th->port);

receive=0;
}
if((s.synflag==0)&&(th->isserve==1))//連接過程
{
dsyn=s.senumber+1;
CString ll;
ll.Format("serve:%d",s.senumber);
AfxMessageBox(ll);
s.synflag=0;
s.acknumber=s.senumber+1;
s.senumber=200;
th->mysyn=201;

th->SendTo(&s,sizeof(node),th->port,th->ip);
//this->isserve=0;
AfxMessageBox("serve連接成功");
this->isaccpet=1;
}
if(s.synflag==1)
{
if(s.ackflag==1)//確認包?
{
node*p;
p=start;
if(start->senumber==s.acknumber)
{  CString aa;
aa.Format("se%d:len%d,npos:%d",s.acknumber,shead.len,start->npos);
//AfxMessageBox(aa);
	if(start->npos>=shead.len)
{CString hh;
hh.Format("完成%d",s.acknumber);
//AfxMessageBox(hh);
	th->isfinish=1;
	
}
else
{   
	start=p->next;
}
end=start;
}
}

if(s.ackflag==0)//數據包
{
CString ss;
s.data[s.pos]=0;
ss.Format("data:%s:snumber%d dsn:%d",s.data,s.senumber,th->dsyn);

node *p,*pre,*sl;
pre=p=&rhead;
//AfxMessageBox(ss);
if(s.senumber==th->dsyn)
{
	th->dsyn++;
if(rhead.len==0)
{
p=pre->next=(node*)malloc(sizeof(node));
rhead.len++;
rrlen++;
memcpy(p,&s,sizeof(node));
p->life=8000;
rend=p;
rstart=&rhead;
th->rstart=rstart;
node ap;
this->rlen=s.len;
ap.ackflag=1;//回應數據
ap.synflag=1;//非連接過程
ap.acknumber=s.senumber;
//AfxMessageBox("len=0");
//AfxMessageBox("dsdsdsd");
th->SendTo((char*)&ap,sizeof(node),th->port,th->ip);
this->type=s.type;
strcpy(this->name,s.name);
if(rhead.len==s.len)
{//AfxMessageBox("接受完畢");
this->isreceve=1;
}//AfxMessageBox("len=0");
}

//DWORD  dwthewad;

//this->starttimer();
//HANDLE thread=CreateThread(NULL,0,my2,this,0,&dwthewad);

else 
{//AfxMessageBox("len>0");
	sl=(node*)malloc(sizeof(node));
memcpy(sl,&s,sizeof(node));
sl->life=8000;
node ackp;
ackp.ackflag=1;//回應數據
ackp.synflag=1;//非連接過程
ackp.acknumber=sl->senumber;
th->SendTo(&ackp,sizeof(node),th->port,th->ip);
checkre(sl);
if(rhead.len==this->rlen)
{//AfxMessageBox(" 接受完畢");
this->isreceve=1;
}
}
}

}


}
}
}
int mytcp::myaccept()
{th->isserve=1;
return 1;
}
/*int mytcp::mysend(char*buffer,int len)
{int flag=0;
node s,d;
for(int i=0;i<len;i++)
s.data[i]=buffer[i];
s.senumber=this->mysyn+1;
s.length=len;
s.acknumber=this->dsyn;
this->SendTo(&s,sizeof(node),this->port,this->ip);
if(this->ReceiveFrom(&d,sizeof(node),this->ip,this->port)!=SOCKET_ERROR)
{if(d.acknumber==this->dsyn)
{
flag=1;
AfxMessageBox("發送成功");
}
}
return flag;
}*/
int mytcp::mysend(char*buffer,int len)
{
int tempsum=0;
if(th->setbuffer(&shead,buffer,len))
{
	CString sa;
	sa.Format("創建成功%d",th->dsyn);
//AfxMessageBox(sa);
}
::GlobalFree(buffer);
node *p;
start=shead.next;
p=start;
end=p;
th->isfinish=0;
th->starttimer();
//for(;;)
{

}

return 1;
}



DWORD mytcp::myreceive(char*buffer,DWORD len)
{DWORD flag=0;
if(rhead.len>0)
{
rhead.len=0;
char *ps;
ps=buffer;
int ff;
if(len%1024==0)
ff=len/1024;
else
ff=(len/1024)+1;
node*p;
p=rhead.next;
for(int i=0;i<ff;i++)
{if(i>rhead.len)
{
	rhead.len=0;
	break;
}

if(i==ff-1)
{if(i==rhead.len)
rhead.len=0;
	rhead.next=p->next;
if((len%1024)==0)
{
memcpy(ps,p->data,p->pos);
flag=flag+p->pos;
}
else
{
memcpy(ps,p->data,p->pos);
flag=flag+p->pos;
}
}
else
{memcpy(ps,p->data,p->pos);
flag=flag+p->pos;

ps=ps+p->pos;

p=p->next;
}
}}

return flag;
}

DWORD WINAPI my(LPVOID param)
{
int  flag=0; 
int j=0;
for(;;)
{
if(th->isfinish==1)
{CString kk;
node *fre=&th->shead;
node *pfre;
pfre=fre;
for(int fr=0;fr<th->shead.len;fr++)
{  pfre=fre;
fre=fre->next;
if(pfre!=&th->shead)
	free(pfre);
}
kk.Format("chenggongfasongwanbi%d",th->dsyn);
th->endofsend=1;
//AfxMessageBox(kk);
break;
}
//	AfxMessageBox(ll);
th->check(th->start);
flag++;
if(flag>=30000)
{flag=0;
node*p,*pre;
p=th->start;
if(th->shead.len!=0)
{if(th->start==th->end)
{
	if(th->start->issend==1)
th->start->life--;
if(th->start->life==0)
AfxMessageBox("dead");
}
}
}
}

return 1;
}
int mytcp::starttimer()
{//th=this;
DWORD  dwthewad;
//eend=end;
m_hThread=CreateThread(NULL,0,my,this,0,&dwthewad);
return 1;
}
int mytcp::setbuffer(node*head,char*buffer,int len)
{
int flag=0;
node*p,*pre;
char *ps;
ps=buffer;
int aa=0;
if(len%1024==0)
aa=len/1024;
else 
aa=(len/1024)+1;
shead.len=0;
p=pre=head;
head->len=0;
for(int i=0;i<aa;i++)
{p=pre->next=(node*)malloc(sizeof(node));
if(i==0)
{p->len=aa;
p->type=this->type;
strcpy(p->name,this->name);
}
head->len++;
p->pos=0;
if(p==head->next)
{p->senumber=this->mysyn+i;
p->npos=1;
}
else
{p->senumber=pre->senumber+1;
p->npos=pre->npos+1;
}
p->life=30000;
p->synflag=1;
p->issend=0;
p->ackflag=0;
p->resend=1;
if(i==aa-1)
{
if(len%1024)
{p->pos=len%1024;
memcpy(p->data,ps,len%1024);
flag=1;
}
else
{
p->pos=1024;
memcpy(p->data,ps,1024);
flag=1;
}
}
else
{p->pos=1024;
memcpy(p->data,ps,1024);
ps=ps+1024;
}
pre=p;
}
this->mysyn=p->senumber+1;
free(buffer);
return flag;
}
int mytcp::check(node*p)
{int flag=1;
if((p->issend==1)&&(p->life<=0))
{AfxMessageBox("send 2");
this->SendTo(p,sizeof(node),this->port,this->ip);
p->resend++;
if(p->resend>=3)
{
AfxMessageBox("網絡不通?");
flag=0;
}
}
if(p->issend==0)
{
	//AfxMessageBox("fasong1");
	this->SendTo(p,sizeof(node),this->port,this->ip);
	p->resend=0;
p->issend=1;
}

return flag;
}
int mytcp::checkre(node*p)
{
node*pp,*pre;
pre=pp=&rhead;
int flag=0;
for(int i=0;i<rhead.len;i++)
{pp=pp->next;
if(p->senumber<pp->senumber)
{rhead.len++;
rrlen++;
pre->next=p;
p->next=pp;
}
/*if(p->senumber==pp->senumber)
{flag=1;
	break;
}*/
pre=pp;
}
if((i==rhead.len)&&(flag!=1))
{pp->next=p;
rhead.len++;
rrlen++;
}
return 1;
}


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人国产免费视频| 欧美性猛片aaaaaaa做受| 91丨porny丨蝌蚪视频| 欧美精品欧美精品系列| 国产精品美女久久久久高潮| 欧美精品在线视频| 国产精品无码永久免费888| 亚洲国产日韩精品| 成人网在线播放| 制服丝袜激情欧洲亚洲| 国产精品高潮呻吟| 激情五月播播久久久精品| 在线看国产日韩| 亚洲天堂精品视频| 国产麻豆视频一区| 欧美一卡二卡在线| 亚洲自拍偷拍综合| www.欧美色图| 国产女人18毛片水真多成人如厕| 日本欧美一区二区在线观看| 91官网在线观看| **网站欧美大片在线观看| 国产精品一区二区无线| 日韩免费在线观看| 日韩电影一区二区三区四区| 欧美三级中文字幕在线观看| 亚洲精品日韩一| 成人av网址在线| 国产精品乱人伦一区二区| 黄色资源网久久资源365| 欧美一级高清片在线观看| 图片区日韩欧美亚洲| 欧美在线观看一区二区| 亚洲中国最大av网站| 91小视频在线| 一区二区三区四区五区视频在线观看 | 26uuu国产日韩综合| 青青草原综合久久大伊人精品优势 | 久久超碰97中文字幕| 欧美丝袜第三区| 亚洲成年人影院| 欧美电影在线免费观看| 日日夜夜精品视频免费| 欧美精品高清视频| 蜜臀久久99精品久久久画质超高清 | www.色精品| 一区二区激情视频| 欧美日韩国产一级二级| 天天色 色综合| 欧美日本高清视频在线观看| 日韩成人免费在线| 日韩欧美国产电影| 国产精品亚洲第一| 中文字幕亚洲视频| 在线观看国产91| 美女视频免费一区| 久久久久久久久岛国免费| 国产a久久麻豆| 一区二区三区四区亚洲| 欧美电影影音先锋| 国产精品一区二区久久精品爱涩| 欧美经典三级视频一区二区三区| av色综合久久天堂av综合| 亚洲一区二区在线观看视频| 日韩欧美在线123| 成人一区二区三区在线观看| 一区二区在线观看av| 欧美一区二区三区四区五区| 国产精品亚洲а∨天堂免在线| 亚洲美女视频在线观看| 777xxx欧美| 成+人+亚洲+综合天堂| 亚洲精品中文字幕在线观看| 欧美刺激午夜性久久久久久久| 国产成人av网站| 午夜影院久久久| 久久久精品黄色| 欧美丝袜丝交足nylons| 国产精品性做久久久久久| 亚洲一区在线观看免费观看电影高清| 欧美一级爆毛片| 91免费观看在线| 国产美女在线精品| 亚洲第一激情av| 国产精品家庭影院| 日韩欧美123| 欧美日韩在线观看一区二区| 国产91综合一区在线观看| 日韩国产欧美在线视频| 亚洲精品成人少妇| 久久久久国产精品人| 欧美乱熟臀69xxxxxx| 9i看片成人免费高清| 激情综合网最新| 亚洲国产美女搞黄色| 国产精品情趣视频| 日本一区二区在线不卡| 性感美女久久精品| 亚洲美女视频在线| 国产欧美久久久精品影院| 91精品国产综合久久精品| 一本大道av一区二区在线播放| 国产麻豆精品在线观看| 蜜臀久久久久久久| 亚洲香肠在线观看| 亚洲欧美日韩国产另类专区| 国产精品视频九色porn| 精品三级av在线| 91精品国产91久久久久久最新毛片| 色吧成人激情小说| 99久久久久久| 91网站最新地址| caoporn国产一区二区| 国产成人精品影视| 国产美女在线观看一区| 狠狠色丁香九九婷婷综合五月| 美国三级日本三级久久99| 日韩成人免费电影| 欧美aaa在线| 蜜臀精品久久久久久蜜臀| 美女视频黄免费的久久| 久久国产福利国产秒拍| 蜜桃精品视频在线观看| 免费成人av资源网| 久久99精品国产| 国产美女在线观看一区| 国产激情偷乱视频一区二区三区| 国产激情一区二区三区桃花岛亚洲| 国产传媒一区在线| 大胆欧美人体老妇| 99久久久精品| 在线观看国产精品网站| 欧美久久一二区| 精品国产免费一区二区三区香蕉| 精品电影一区二区三区| 国产欧美日韩在线观看| 国产精品久久久久毛片软件| 亚洲精品一二三四区| 亚洲国产成人av| 精品一区二区在线播放| 国产原创一区二区| av电影在线观看不卡| 日本伦理一区二区| 91精品国产色综合久久ai换脸| 精品久久久久久久久久久院品网 | 日韩精品高清不卡| 黄色日韩三级电影| 波多野结衣精品在线| 欧美曰成人黄网| 精品欧美一区二区在线观看 | 国产自产视频一区二区三区| 国产成人在线看| 日本福利一区二区| 日韩欧美国产综合在线一区二区三区 | 欧美日本国产视频| 精品成人免费观看| 一区二区三区在线影院| 久久国产三级精品| 色综合天天综合网天天看片| 日韩一区二区三区在线| 国产日韩精品一区| 午夜精品福利在线| 国产成人免费av在线| 欧美日韩国产中文| 国产精品无人区| 久久66热re国产| 在线观看免费视频综合| 久久在线观看免费| 亚洲一卡二卡三卡四卡无卡久久 | 亚洲成人你懂的| 成人一区二区三区在线观看| 日韩欧美黄色影院| 亚洲精品视频在线看| 国产高清不卡二三区| 这里只有精品视频在线观看| 1024亚洲合集| 国产精品69久久久久水密桃| 在线播放国产精品二区一二区四区| 国产精品女主播在线观看| 蜜桃视频在线观看一区二区| 欧美日韩三级在线| 《视频一区视频二区| 国产suv精品一区二区三区| 在线综合亚洲欧美在线视频| 亚洲综合在线视频| 成人激情图片网| 久久久高清一区二区三区| 欧美aa在线视频| 日韩手机在线导航| 亚洲国产视频一区| 色一情一伦一子一伦一区| 国产免费久久精品| 国产综合一区二区| 精品剧情v国产在线观看在线| 日韩不卡一区二区三区| 欧美日韩一区精品| 亚洲永久免费视频| 91行情网站电视在线观看高清版| 1024国产精品| 一本久道久久综合中文字幕 |