李星 发表于 2016-10-23 22:44:16

走就走到底的不归路4(上) .......(连载中)

   谢谢Minhal    评分!   两天不见,不知道大家学习的怎么样呢,,我这两天确实没有什么进步所以没有长篇大论.....这两天的注意力还是在网络编程上的,,,(至于之前的那个自我复制的功能还没有想到有什么好扩展的,,而且也没打算研究病毒类的东东!!)   在网络编程方面我真的看书看得有点昏了,,,,有些是讲的有C语言实现一些自带的功能,没有很强的吸引力,,有些是讲的非阻塞socket看起来好像是很连贯,,我还是觉得跨度有点大我的曼曼来捉摸一段时间的,,,,,         
接下来的10多天我可能不能和大家一起学习进步了,,我得去搬砖赚点钱(生活所迫啊!!{:5_90:})   本想着自己可以有脑壳来赚钱,,但是现实中是一次又一次的出卖自己的肉体{:5_100:}{:5_100:}   我虽不再 但我的心还在和大家学习,,,你们要继续学习哦,,,{:7_132:}   继续来讲讲我的学习进度吧,,,我首先得事情是没有作网络的实现,而是在单机上的注册,,登陆还没完善;;;;(码烂请喷)
#include <iostream.h>
#include <conio.h>

int qq_wolf();
voidqq_ui();
int qq_log();
int qq_reg();

struct info{
   char name;
   char sex;
   int age;
   char pass;
   char passa;
   int num ;
}per;
        char *log = (char *)malloc(8);
        char*pas = (char*)malloc(12);
int qq_reg()

{   

        int count=0;
        int count1=0;
   per.age =0;
       per.sex = 0;
       per.num=1;
   cout << "Need input your info !"<<endl;
       cout <<"input your name:"<<endl;
       cin >> per.name;
       cout<< "input your sex:(0.girl   1.boy)"<<endl;
       cin >> per.sex;
       cout <<"input your age:"<<endl;
   cin>>per.age;
       
               bool flag =1;


do{       
             count = 0;
               count1=0;
       cout <<"input your password:"<<endl;
       while((per.pass= getch())!=13 && count<11)
       {
           putch('*');
           cin.sync();
          
           count++;
       }
   per.pass = ' ';
   cout<<endl<<"input your pass again:(the same as last)"<<endl;
       while ((per.passa = getch())!=13 && count1<11)
       {
           putch('*');
           fflush(stdin);
           count1++;
       }
      per.passa = ' ';
        if(count != count1)
            cout <<endl<< "your password diffence.error1"<<endl;
                else {
                           while(count)
                           {
                             if(per.pass==per.passa)
                                   {
                                     count--;
                                   }
                                   else
                                   {
                                      cout<<"your password diffence!"<<endl;
                                          break;
                                   }
                           }
                           if(count ==0)
                        flag = 0;
               }
       }while(flag);

       cout<<endl<< "ing......."<<endl;
       count = 0;
   while (per.name != 0)
       {
           per.num += per.name;
           count++;

       }
       per.num += (per.sex+per.age);
       per.num = per.num << 8;
       per.num += 12345678;
       FILE *fp;
       if((fp = fopen("D:\\TEST\\Debug\\logdata.txt","a")) == 0)
       {
          cout << "openfailed"<<endl;
                exit(1);
       }

       fprintf(fp,"%-8d",per.num);
       fprintf(fp,"%c",'\0');
       
       fprintf(fp,"%-12s",per.pass);

       fprintf(fp,"%c",'\0');


       fclose(fp);
       cout << "your num is "<<per.num<<endl;
return0;
}



intqq_log()
        {
                FILE *fp;
        if((fp = fopen("D:\\TEST\\Debug\\logdata.txt","rb"))==0)
          {
                cout <<"open fail"<<endl;
                exit(1);
          }
          char *name=(char*)malloc(8);
          bool t=1,fly=0;
          while(t){
          fread(name,22,1,fp);
   
          if(strcmp(name,log)==0)
                        {
                  t = 0;
                   fly = 1;
                        }
          if(feof(fp))
                        {
                  fly =0;
                  break;
      
                }
          }
          
          char key ;
          fseek(fp,-13,SEEK_CUR);
          fread(key,12,1,fp);
          fclose(fp);
               if(fly ==1)
               {
                   cout << "login ........."<<endl;
               }
               else{
               cout <<"error !! (zhc)"<<endl;
                  return 1;
               }
               bool boom = 0;
               int n=0;
               while(key == *pas)
               {
                       n++;
                       pas++;
                       if(key== ' '&& *pas =='\0')
                       {
                          boom = 1;
                                break;
                       }
                          
               }
                if(boom ==1)
                {
                  cout << "welcome !"<<endl;
                }
                else
                {
                   cout <<"error !(mmc)"<<endl;
                }
       return 0;
        }
voidqq_ui()
{

        int choose= 0;
        while(choose!=1 && choose !=2) {

   cout << "1.login                        2.register"<<endl;
   cout <<"input your choose :" << endl;
   cin>>choose;
        }
        if(choose == 1)
        {
   cout<<"****************************"<<endl;
   cout<<"                Login:" ;
   cin >>log;
   cout<<"****************************"<< endl;
   cout<<"                pass :";
   cin >>pas;
   cout << ".............."<<endl;
   qq_log();
        }
        else
                qq_reg();
}



int qq_wolf()
{
   qq_ui();
return 0;
}以上代码我都是可以用的,,,,,就是一系列的函数 你可以加在你的程序里面进行调试,,都很简单,即使是初学者都可以通过查询不懂得函数便会懂得...之后的网络部分框架还很模糊,,我就不献丑了,,等我再学习一段时间再说吧!!!!毕竟我不是大神!!!!!!!{:7_115:}
   
再说一下网络编程方面的::::::以下的都是我通过书本,资料的总结的,如果有误请不吝赐教:::
   1传输层的tcpudp只是两个通用的可靠与不可靠连接,,,然而通信时是不可能仅仅简单的,,单独的使用他们进行通信,,,,但是还是可以通过评判通信的特点来选择之一....在其上层应用层可以通过技术来对这两个协议进行加强,,完成一些本身没有的功能..而且还有一点,应用层的协议大部分都是自己编写,,
   2一个监听端口,用来监听请求然后再建立一个新的进行通信..???????????关于这个我的疑问是如果很多用户软件怎么办(大于端口数).....
   ...
....一时半会有忘记了一些 (以后还是先寄来下把)


..................................分割线   




下次见   这次的下次就有点久了哦!!!!!!!!!!!!!!




{:7_122:}





页: [1]
查看完整版本: 走就走到底的不归路4(上) .......(连载中)