チャットルームの登録と登録

2620 ワード

チャットルームのクライアントでは、1つのスレッドを用いて読み取り操作と別のスレッドを用いて書き込み操作を行うが、両者は互いに干渉せず、ユーザがクライアントで登録操作を行う際には、まず最も基本的な登録情報を入力し、すべての情報を入力してサーバに送信する必要がある.サーバは、転送された構造体のオプションを使用して、実行したい具体的な操作を見つけ、データベースにこのような空間を割り当てて個人情報を格納します.格納に成功すると、ランダムな6桁のアカウントが生成されます.次は、この機能を実現するコードです.
srand(time(NULL)) ;
data->id = 99999 ;
while(data->id <100000 )
{
	data->id =(rand()%10)*100000+(rand()%10)*10000+(rand()%10)*1000+(rand()%10)*100+(rand()%10)*10+(rand()%10);
}

システムはあなたに1つの番号を割り当てた后にあなたのsocketによって更にあなたに伝わることができて、このようにあなたは成功して1つのアカウントを登录して、次は登录して、ヒントによってアカウントとパスワードを入力して、クライアントは情报をサーバーに送って、サーバーはデータベースの中から情报を呼び出して遍歴して、もしあなたのアカウントとパスワードを探し当てたらクライアントに1つのメッセージを送信して、この歌は、スレッドを読むときに専用のフラグビットを設定することができます.同時に、このフラグビットはチャットルームに入るのに成功したインタフェースの前に詰まっています.フラグビットが要求に合っている場合は、次のパーソナルインタフェースに入ります.逆にbreakは再びログインメインインタフェースに戻り、パスワードを再登録したり忘れたりする操作ができます.次に、フラグビットの詰まりとリードスレッドを使用して、2つのプロンプトを受信する方法を示します.
case 'A' ://  
{
	zizuan = 0 ;
	int ac;				
	char b2[20] ;
	system("clear") ;
				
	printf("\t\t       :") ;
	scanf("%d",&ac) ;
	data.id = ac ;
	printf("
") ; printf("\t\t :") ; int i = 0; int jj = 0; while(i < 20) { b2[i] = mygetch(); if(b2[i] == 10) { if(jj == 0) { jj++; continue; } break; } printf("*"); i++; } b2[i] = '\0'; strcpy(data.password,b2) ; data.written = 0 ; write(mysockfd,&data,sizeof(data)) ; printf("


"); printf("\t\t\t ......
"); run = 0 ; while(run == 0) { NULL; } if(run == 1)
if(retu.kind == success1)//    
{
	memset(&data,0,sizeof(struct Servercaozuo));
	strcpy(data.user,retu.user);
	strcpy(mingzi,data.user) ;
	run = 1 ;					
										
}

if(retu.kind == fail)
{
biaozhifu = 2 ;
while (biaozhifu == 2)
{
system("clear") ;
printf("%s",retu.information) ;
printf("

") ;
printf(" :");
char c6[20] ;
scanf("%s",c6) ;
biaozhifu = 1 ;
 run = 2 ;
}
}