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

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

?? server.cpp

?? 模擬銀行ATM提款機系統 模擬銀行ATM提款機系統(單線程)
?? CPP
字號:
/*server.cpp*/
/**Author: Xu Zhengyu  2001HDC(3)  413
Project: RAD Report---Project: RAD Report---Imitating ATM System based on C/S and DOS
Title: Imitating ATM System based on C/S and DOS
Function:  1 Inquire lacking money of account
           2 Modify code
		   3 Draw money from account
		   4 Login & Register
		   5 washing money
		   6 safeguard file of Server & Client (include modify IP address)
Date:2003/04/12  **/

#include "passive.h"
#include "windef.h"
#include "winsock.h"
#include "memory.h"
#include "stdio.h"
#include "windef.h"
#include "fcntl.h"
#include "signal.h"
#include "sys/types.h"
#include "stdio.h"
#include "stdarg.h"
#include "io.h"
#include "conio.h"
#include "dos.h"
#include "math.h"
#include "ctype.h"
#include "stdlib.h"
#define bufsize 20
#define BUFSIZE  20
#define QLEN  5
extern int t_errno;
//number of drawing money from bank
      /*master and slave sockets    */
#define LINELEN  128
#define LEN sizeof(struct bank)
#define NULL 0
struct bank
{
 
 char name[5];//name of user
 char account[5];
 char money[5];
 char code[5];//code of user
 long crash;
 
} user[5];//large number of users imiating

 void main(int argc,char *argv[])
{
    unsigned port=6666;
	struct sockaddr_in fsin; /*the from address of a client*/
	int alen;                /*the from address length     */
	char buf[BUFSIZE];       /* buffer for one line of text*/
    char filenamestep;  /*char of filename*/
	
	WSADATA myWSAData;
	WORD VersionReqd;
	int Status;
	   int ssock;          /*recive filename*/

     int msock;
	struct sockaddr_in sin;
    struct protoent  *ppe;

	



	VersionReqd = MAKEWORD(2,2);
	Status = WSAStartup(VersionReqd, &myWSAData);//The Windows Sockets WSAStartup function initiates use of WS2_32.DLL by a process.
	if (Status != 0)
	{
    /* Tell the user that system could not find a useable file */
    /* WinSock Listener DLL.                                  */
		printf("WSAStartup() failed\n");
		exit(1);
	}
/* Confirm that the WinSock DLL supports 2.2.*/
/* Note that if the DLL supports versions greater    */
/* than 2.2 in addition to 2.2, it will still return */
/* 2.2 since that is the version we      */
/* requested.                                        */

	if ((ppe=getprotobyname("tcp"))==0)
	{	printf("Cann't get tcp protocol entry");
		exit(1);}


	msock=socket(PF_INET,SOCK_STREAM,ppe->p_proto);
	if (msock<0) 
	{	printf("Can't create socket");
		exit(1);}

    memset(&sin,0,sizeof(sin));
    sin.sin_family=AF_INET;
	sin.sin_port=htons((u_short)port);
	sin.sin_addr.s_addr=INADDR_ANY;

	if (bind(msock,(struct sockaddr*)&sin, sizeof(sin))<0)
	{	printf("Can't bind to %d port",port);
		exit(1);}
        /**Author: Xu Zhengyu  2001HDC(3)  413
Project: RAD Report---Project: RAD Report---Imitating ATM System based on C/S and DOS
Title: Imitating ATM System based on C/S and DOS
Function:  1 Inquire lacking money of account
           2 Modify code
		   3 Draw money from account
		   4 Login & Register
		   5 washing money
		   6 safeguard file of Server & Client (include modify IP address)
Date:2003/04/12  **/
	if (listen(msock,QLEN)<0)
		{
		printf("Can't listen on %d port",port);
		exit(1);
	}

	int flag;
	while (1)
	{
    	flag=0;
		printf(" ATM Server is listening...........\n");
		alen=sizeof(fsin);
		ssock=accept(msock,(struct sockaddr *)&fsin,&alen);
		if (ssock<0)
		{
			printf("accept failed\n");
			break;
		}
		printf("accepted...........\n");


		/*******************************************/
		//receive code of command
long crash=0;long prt=0;int t;
                FILE *fp;
				struct bank *p;
				int fno,flen;
long len=LEN;
		int cc;//int jks;
		int i,j;
		char c;
		int bs=0;
		int retry=0;
	
	LK1:
		
		
        i=0; j=0;
		while(cc=recv(ssock,&filenamestep,1,0))
		{
			if (cc<0) 
			{
				printf("receive error\nlistening......\n");
				break;
			}
			if(filenamestep=='\0')//flag of end to file

			{
			    printf("receive Message is %d\n",i);
				break;
			}
			j++;
			if ((retry>0)&&(j<(20-bs))) continue;
			printf("%c",filenamestep);
			buf[i]=filenamestep;
			i++;
		}
		bs=i;
		buf[i]='\0';//define flag of file		            
		
		printf("\n\n");
		printf("filename:  %s\nTrans content:  ",buf);//test language
	    printf("\n\n");
        int leng;int kg,kd=0,fkg;char buft;
		leng=strlen(buf);
		printf("length of buf is:%d\n",leng);
		//-----------------------
		if(leng>10){
			for(kg=0;kg<leng+1;kg++){
				if(isgraph(buf[kg])==1){
				 printf("%c\n",buf[kg]);
				 fkg=kg;
				 break;
				}
		
		}
          printf("\n\n");
          if(fkg==leng){
		   buft=buf[fkg];
		   buf[0]=buft;
		   buf[1]='\0';
		  }
		  else{
		  for(kg=0;kg<10;kg++){
		    buft=buf[fkg];fkg++;
			buf[kg]=buft;
		  
		  }
		buf[10]='\0';
		  }//解析出數據,去掉多余的亂碼
          printf(" second filename:  %s\nTrans content:  ",buf);
		}
		//-----------------------------------
          c=buf[0];
		switch(c){
		 case 'A':
			{
				/*check login*/
				int status1;
                int length=0;
                char p1[bufsize];
                while(1){//function of decode
					if(buf[length]=='\0')break;
					else{
					p1[length]=buf[length];
                      length++;
                       //str++;
					}

				}//end of while
				int i1;
				char moneyN[5];char nameN[5];
				char codeN[5];char accountN[5];
				for(i1=1;i1<length;i1++){
					if(p1[i1]=='/'){
						status1=i1;
						break;
					}	 
					accountN[i1-1]=p1[i1];	
				}
				accountN[status1-1]='\0';
				printf("Account is:%s\n",accountN);
				int k1=0;
				for(i1=status1+1;i1<length;i1++){
					codeN[k1]=p1[i1];k1++;
				}
				codeN[k1]='\0';
				printf("code is:%s\n",codeN);
				//accomplish function of decode as stated above
				
				if((fp=fopen("bank.dat","r+w"))==NULL)printf("File not exist!\n");
				fno=fileno(fp);flen=filelength(fno);
				char sendM[10];
				char sendchar;
				int t,s6=0,t2,t3;
				t=(flen/LEN);
				for(i1=0,p=user;i1<5;i1++,p++){
				fread(p,LEN,1,fp);
				if((!strcmp(p->account,accountN))&&(!strcmp(p->code,codeN))){
				strcpy(nameN,p->name);strcpy(moneyN,p->money);fclose(fp);
					printf("name is:%s\n",nameN);	printf("money:%s\n",moneyN);
					for(t2=0;t2<5;t2++){
					 if(nameN[t2]=='\0')break;
					 sendM[t2]=nameN[t2];
					}
					sendM[t2]='/';t3=t2+1;
					for(t2=t3;t2<11;t2++){
                      
						sendM[t2]=moneyN[t2-t3];}
				
					printf("send is:%s\n",sendM);			
					
					s6=3;
                    fclose(fp);
					break;
				}
                 
 }
				if(s6==3) goto LK;
				(void)send(ssock,"^",1,0);
				printf("Send is '^'\n login retry......\n");
			
				retry++;
				goto LK1;
				LK:
				int gt;
				gt=strlen(sendM);
				for(i1=0;i1<gt;i1++){
					printf("Now it is sending....Please wait for a while!\n");
					sendchar=sendM[i1];
					if(sendchar=='\0')break;
					if(send(ssock,&sendchar,1,0)<0)break;
					printf("%c",sendchar);
					
				}
			   (void)send(ssock,"*",1,0);
				printf("Sending is over'*'\n");   //add specific end char.
				//LK1:
				printf("Sending successfully!\n");
				break;}
         case 'B':
			{
				/*execute drawing money*/
                  
char accountN3[5];char moneyN3[5];
int i23;int i3;
for(i23=0;i23<4;i23++)accountN3[i23]=buf[i23+1];
accountN3[4]='\0';
printf("account is: %s\n",accountN3);
for(i23=0;i23<5;i23++)moneyN3[i23]=buf[i23+6];
moneyN3[5]='\0';//decode module
printf("drawmoney is: %s\n\n\n",moneyN3);
int s9=0;
crash=atol(moneyN3);
printf("last drawmoney is: %d\n",crash);
if((fp=fopen("bank.dat","r+w"))==NULL)printf("File not exist!\n");
fno=fileno(fp);flen=filelength(fno);t=(flen/LEN);
for(i3=0,p=user;i3<5;i3++,p++){
fread(p,LEN,1,fp);
if(!strcmp(p->account,accountN3)){
prt=atol(p->money);
prt=prt-crash;
ltoa(prt,p->money,10);
p->crash=crash;
fseek(fp,-len,1);
fwrite(p,LEN,1,fp);
fclose(fp);
s9=6;
break;

}
}
if(s9==6)goto LN3;
(void)send(ssock,"(",1,0);//drawing money failed
retry++;
goto LK1;
LN3:
(void)send(ssock,"%",1,0);//drawing money successful
//LN31:
printf("Drawing money is %d\n",crash);
				break;}
         case 'C':
			{
				/*wash money*/
    char accountM[5];
	int fd2;
	for(fd2=0;fd2<4;fd2++)accountM[fd2]=buf[fd2+1];
	accountM[4]='\0';
printf("\n\n\n");
printf("account is: %s\n\n",accountM);
flag=buf[6];
printf("\n\n\n");
printf("Flag is: %c\n\n",flag);
long len=LEN;
if(flag=='+'){//drawMoney machine error
if((fp=fopen("bank.dat","r+w"))==NULL)printf("File not found!\n");

fno=fileno(fp);flen=filelength(fno);
t=(flen/LEN);
for(j=0,p=user;j<5;j++,p++){
fread(p,LEN,1,fp);
if(!strcmp(p->account,accountM)){
prt=atol(p->money);
crash=p->crash;
prt=prt+crash;
ltoa(prt,p->money,10);
p->crash=0;
fseek(fp,-len,1);
fwrite(p,LEN,1,fp);
fclose(fp);break;
}
}
}
if(flag=='-'){//drawMoney machine formal
if((fp=fopen("bank.dat","r+w"))==NULL)printf("File not found!\n");

fno=fileno(fp);flen=filelength(fno);
t=(flen/LEN);
for(j=0,p=user;j<t;j++,p++){
fread(p,LEN,1,fp);
if(!strcmp(p->account,accountM)){
p->crash=0;
fseek(fp,-len,1);
fwrite(p,LEN,1,fp);
fclose(fp);break;
}
}
}     
				break;}
          case 'D':
			{
				/*modify code*/
char accountW[5];char codeW[5];int k3=0;
accountW[0]=buf[1];accountW[1]=buf[2];accountW[2]=buf[3];accountW[3]=buf[4];accountW[4]='\0';
codeW[0]=buf[6];codeW[1]=buf[7];codeW[2]=buf[8];codeW[3]=buf[9];codeW[4]='\0';
printf("Account is:%s\n",accountW);
printf("Code is:%s\n",codeW);

if((fp=fopen("bank.dat","r+w"))==NULL)printf("File not exist!\n");
fno=fileno(fp);flen=filelength(fno);t=flen/LEN;

for(j=0,p=user;j<5;j++,p++)
{
 fread(p,LEN,1,fp);
 if(!strcmp(p->account,accountW)){
    strcpy(p->code,codeW);
    fseek(fp,-len,1);
    fwrite(p,LEN,1,fp);
     fclose(fp);k3=6; break;
 }
}
if(k3==6)goto LJH2;
(void)send(ssock,">",1,0);//modify failed
retry++;
goto LK1;
LJH2:
(void)send(ssock,"<",1,0);//modify successful
(void)send(ssock,"*",1,0);
printf("Now code had been modifyed!\n");
				break;}
 
		}//end of switch
		printf("\nSend File %s OK\nSending is successful.........\n",buf);
		goto LK1;//返回開始位置,不要關閉socket
	    if (flag==1) (void) closesocket(ssock);
	}
	(void) closesocket(msock);
	WSACleanup();
	
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美色视频一区| 成人午夜激情在线| 国产亚洲成aⅴ人片在线观看| 欧美精品一级二级三级| 99久久伊人网影院| 不卡区在线中文字幕| 福利视频网站一区二区三区| 国产在线精品一区二区不卡了| 男人操女人的视频在线观看欧美| 亚洲福利一区二区| 午夜精品久久久久久久99樱桃| 亚洲综合成人网| 青草av.久久免费一区| 亚洲一区二区三区小说| 午夜欧美电影在线观看| 日韩av电影免费观看高清完整版 | 久久99国产精品久久99果冻传媒| 日韩精品高清不卡| 男人的天堂亚洲一区| 国产美女一区二区三区| 成人精品免费网站| 欧美日韩国产高清一区二区| 欧美视频在线一区| 日韩无一区二区| 久久影音资源网| **性色生活片久久毛片| 亚洲精品免费播放| 日本亚洲一区二区| 成人激情午夜影院| 欧美日韩视频在线观看一区二区三区 | 国产亚洲欧美日韩在线一区| 国产精品女同互慰在线看| 樱花草国产18久久久久| 日本色综合中文字幕| 国产夫妻精品视频| 欧美视频日韩视频| 久久夜色精品国产噜噜av| 国产精品久久久久久妇女6080| 亚洲激情在线激情| 九九九久久久精品| 99在线精品一区二区三区| 欧美欧美欧美欧美| 日本一区二区三区在线观看| 亚洲成人免费视频| 成人高清在线视频| 欧美日韩国产bt| 欧美激情一区在线观看| 午夜激情综合网| 丁香激情综合五月| 日韩欧美一区二区三区在线| 综合久久一区二区三区| 精品亚洲成a人| 欧美性xxxxxxxx| 综合婷婷亚洲小说| 国产91精品一区二区麻豆网站| 欧美日韩三级在线| 亚洲日本乱码在线观看| 国产精品一区二区在线观看不卡| 欧美日韩一区二区三区高清| 一区精品在线播放| 国产91丝袜在线播放| 亚洲精品国产精品乱码不99| 国产一区视频在线看| 日韩一区二区精品葵司在线| 亚洲一区国产视频| 91美女视频网站| 中文字幕在线不卡国产视频| 国产69精品一区二区亚洲孕妇| 精品区一区二区| 免费精品视频在线| 日韩欧美一级二级三级| 丝袜国产日韩另类美女| 欧美在线观看视频一区二区三区| 日本一二三四高清不卡| 国产91丝袜在线观看| 国产日韩精品久久久| 国产精品中文字幕欧美| 久久久一区二区三区捆绑**| 国产一区二区三区四区五区美女| 欧美一级日韩不卡播放免费| 免费看欧美女人艹b| 欧美tickling网站挠脚心| 麻豆一区二区99久久久久| 日韩欧美中文字幕制服| 麻豆精品在线视频| www激情久久| 国产成人免费在线| 亚洲少妇中出一区| 精品理论电影在线观看 | 久久综合九色欧美综合狠狠| 久久国产精品免费| 日韩欧美国产精品| 国产酒店精品激情| 中文字幕一区二区三区av| 色偷偷久久人人79超碰人人澡| 亚洲激情第一区| 91精品欧美综合在线观看最新| 免费观看成人鲁鲁鲁鲁鲁视频| 精品国产伦一区二区三区观看体验 | 在线日韩一区二区| 奇米在线7777在线精品 | 99国产一区二区三精品乱码| 亚洲精选在线视频| 欧美日韩一级大片网址| 精品无人区卡一卡二卡三乱码免费卡| 久久一二三国产| 成人99免费视频| 亚洲国产wwwccc36天堂| 欧美mv日韩mv国产| 99精品欧美一区二区蜜桃免费| 亚洲国产成人av网| 国产清纯白嫩初高生在线观看91| 成人性色生活片免费看爆迷你毛片| 亚洲美女一区二区三区| 日韩限制级电影在线观看| 成人av一区二区三区| 日韩电影在线免费| 一区视频在线播放| 欧美大片在线观看一区二区| aaa亚洲精品一二三区| 日日欢夜夜爽一区| 中文字幕一区av| 日韩精品一区二区三区视频在线观看 | 欧美日韩一级大片网址| 高清在线不卡av| 日韩av中文字幕一区二区三区 | www.av精品| 九九精品一区二区| 一二三四区精品视频| 久久精品欧美日韩| 日韩免费观看高清完整版| 91一区二区三区在线观看| 国产乱色国产精品免费视频| 亚洲成a人在线观看| 18成人在线视频| 中日韩av电影| 久久综合九色综合97婷婷女人| 欧美男女性生活在线直播观看| 99国产精品久久久久久久久久| 韩国女主播一区二区三区| 五月激情六月综合| 一级做a爱片久久| 亚洲欧洲精品一区二区精品久久久| 欧美精品一区二区三区高清aⅴ| 欧美日韩国产一二三| 97久久超碰国产精品| 成人av在线资源网站| www.亚洲免费av| 成人综合婷婷国产精品久久蜜臀| 久久99精品久久久久久| 麻豆高清免费国产一区| 日韩高清在线一区| 免费看日韩a级影片| 久久精品国产亚洲一区二区三区| 亚洲地区一二三色| 亚洲二区在线观看| 亚洲成人资源网| 午夜视频一区二区| 丝袜亚洲另类丝袜在线| 免费不卡在线视频| 蜜臀久久久99精品久久久久久| 免费高清在线一区| 国产一区在线视频| 丁香天五香天堂综合| 成人黄色小视频| 99久久99久久精品国产片果冻| 99久久国产综合精品色伊| 欧美综合一区二区三区| 欧美日本国产视频| 精品乱人伦小说| 欧美国产1区2区| 亚洲麻豆国产自偷在线| 亚洲午夜日本在线观看| 日韩中文字幕91| 国内精品伊人久久久久av影院| 国产精品自产自拍| 一本大道综合伊人精品热热 | 日本女优在线视频一区二区| 国产一区在线不卡| 色诱视频网站一区| 91精品国产综合久久精品图片 | 欧美高清视频www夜色资源网| 日韩欧美一区中文| 中文字幕乱码一区二区免费| 亚洲三级理论片| 日本vs亚洲vs韩国一区三区 | 一二三四社区欧美黄| 麻豆成人免费电影| 91日韩一区二区三区| 欧美一区二区大片| 国产精品久久久久久久久快鸭 | 欧美日韩午夜在线| 国产无人区一区二区三区| 国产精品久久二区二区| 亚洲成av人片在线观看无码| 精品亚洲成a人| 欧美三级欧美一级| 国产精品色一区二区三区| 日韩在线一区二区三区| 成人午夜激情影院|