怎么修改这个程序的路径,fopen怎样才能运行,一直显示存储文件不存在

server_main程序

#include<string.h>
#include <stdio.h>
#include <winsock.h>

#define WSVERS MAKEWORD(2, 0)

SOCKET passiveUDP(const char *);
void errexit(const char *, …);

char recvbuf[4096];
char sendbuf[4096];
char *service = “2009”;
struct sockaddr_in fsin;
SOCKET sock;

int total=0; //统计在线用户

struct chatter //在线用户
{
char username[10];
struct sockaddr_in save_sin;
// int place;
} chatter_online[10];

struct user_info //注册用户
{
char username[10];
char passwd[10];
}user[10];
//===send_error

void send_error(int error_seq)
{
printf(“send_error is exacuting!\n”);
memset(&chatter_online[error_seq],’\0’,sizeof(chatter_online[error_seq]));
while(error_seq<=total)
{
memcpy(&chatter_online[error_seq],&chatter_online[error_seq+1],sizeof(chatter_online[error_seq+1]));
error_seq++;
}
total–;
}

//-------------------------------------send_error end------------------------------

//apply

void apply() //申请函数
{
printf(“0\n”);
printf("%s\n",recvbuf);
FILE *fp1;
int i=0,j=1,k=0;
struct user_info test_user;

memset(test_user.username,'\0',sizeof(test_user.username));
memset(test_user.passwd,'\0',sizeof(test_user.passwd));

if((fp1=fopen("E:\\ltcx\\server_main\\","r"))==NULL)
{
	printf("存储文件不存在!");
	return ;
}

printf(“1\n”);
while(recvbuf[j]!=’|’) //将注册名存入recvbuf中
{
test_user.username[j-1]=recvbuf[j];
j++;
}
// test_user.username[j]=’\0’;

 while(recvbuf[j+1]!='\0')   //存放注册密码
{
   test_user.passwd[k]=recvbuf[j+1];
   k++;
   j++;
}

// test_user.passwd[k]=’\0’;
printf(“2\n”);
while(!feof(fp1))
{
fread(&user[i],sizeof(struct user_info),1,fp1);

  printf("-->if\n");
  
  if(strcmp(test_user.username,user[i].username)==0)
  {
	  memset(recvbuf,'\0',sizeof(recvbuf));
	  recvbuf[0]='0';
	   
      printf("-->=0sendto\n");
	  (void)sendto(sock, recvbuf, strlen(recvbuf), 0,(struct sockaddr *)&fsin, sizeof(fsin));
	  memset(recvbuf,'\0',sizeof(recvbuf));
	  printf("由于用户名已存在,故拒绝该申请!\n\n");
	  return ;
  }

   i++;
}

fclose(fp1);
printf(“3\n”);
fp1=fopen(“E:\ltcx\server_main\”,“a”);
if(fwrite(&test_user,sizeof(struct user_info),1,fp1)==1)
{
memset(recvbuf,’\0’,sizeof(recvbuf));
recvbuf[0]=‘1’;
printf(“4\n”);
(void) sendto(sock, recvbuf, strlen(recvbuf), 0,(struct sockaddr *)&fsin, sizeof(fsin));
printf(“5\n”);
memset(recvbuf,’\0’,sizeof(recvbuf));
printf(“一位新用户注册成功!\n\n”);
fclose(fp1);
return ;
}
else
{
memset(recvbuf,’\0’,sizeof(recvbuf));
recvbuf[0]=‘2’;
(void) sendto(sock, recvbuf, strlen(recvbuf), 0,(struct sockaddr *)&fsin, sizeof(fsin));
memset(recvbuf,’\0’,sizeof(recvbuf));
printf(“因写入错误,导致该用户申请失败!\n\n”);
fclose(fp1);
return ;
}
}

//-------------------------------------------apply end-------------------------------------------------------

//login=========

void login() //登录验证函数
{
int j=1,k=0,m=1,i=0;
int judge=total;
int judge_online=0;////////////////////////////////////
FILE *fp;
char temp_passwd[10];
char temp_name[10];

memset(temp_name,'\0',sizeof(temp_name));
memset(temp_passwd,'\0',sizeof(temp_passwd));

while(recvbuf[j]!='|')   //将注册名存入recvbuf中
{
	temp_name[j-1]=recvbuf[j];
	j++;
}


while(recvbuf[j]!='\0')
{
	temp_passwd[k]=recvbuf[j+1];
	k++;j++;
}





while(!feof(fp))
{
  fread(&user[i],sizeof(struct user_info),1,fp);
  
  if(strcmp(temp_name,user[i].username)==0 && strcmp(temp_passwd,user[i].passwd)==0)
  {
	  	while(judge_online<=total)                                     //判断要登录的用户是否已经在线
		{
			if(strcmp(temp_name,chatter_online[judge_online].username)==0)
			{
				memset(recvbuf,'\0',sizeof(recvbuf));
				strcpy(recvbuf,"该用户已经在线,请下线后,再尝试重新登录!");
				(void) sendto(sock, recvbuf, strlen(recvbuf), 0,(struct sockaddr *)&fsin, sizeof(fsin));
				return ;
			}
			judge_online++;
		}
     //   --------------------------

		memset(chatter_online[total].username,'\0',sizeof(chatter_online[total].username));
		
		while(recvbuf[m]!='|')   //登录成功后成为在线用户,将其信息保存到chatter结构体中
		{
			chatter_online[total].username[m-1]=recvbuf[m];
			m++;
		}
	
	    memcpy(&chatter_online[total].save_sin, &fsin,sizeof(struct sockaddr_in));
		
		memset(recvbuf,'\0',sizeof(recvbuf));
		recvbuf[0]='1';
		(void) sendto(sock, recvbuf, strlen(recvbuf), 0,(struct sockaddr *)&chatter_online[total].save_sin, sizeof(chatter_online[total].save_sin));
		printf("%s成功进入聊天室!\n\n",chatter_online[total].username);
		total++;
	    printf("\n=======>Now total is %d\n",total);
		fclose(fp);
		return ;
  }
  i++;
}


if(judge==total)
{
	memset(recvbuf,'\0',sizeof(recvbuf));
    strcpy(recvbuf,"用户名或密码错误!");
    (void) sendto(sock, recvbuf, strlen(recvbuf), 0,(struct sockaddr *)&fsin, sizeof(fsin));
	fclose(fp);
	return ;
}

}

//----------------------------------------------login end-----------------------------------------------------

//=chat================

void chat()
{
char temp_name[10];
int i=0,j=0;
int m;

memset(temp_name,'\0',sizeof(temp_name));

while(recvbuf[i]!=':')
{
	temp_name[i]=recvbuf[i];
	i++;
}

while(j<total)
{
if(strcmp(temp_name,chatter_online[j].username)!=0)
{
m=sendto(sock, recvbuf, strlen(recvbuf), 0,(struct sockaddr *)&chatter_online[j].save_sin, sizeof(chatter_online[j].save_sin));
printf("\nm=%d",m);
if(m==SOCKET_ERROR || m<0)
{
send_error(i);
j–;
}
}
j++;
}
printf("\n%s发言成功!\n",temp_name);
return ;
}
//--------------------------------------------chat end------------------------------------------------------------

//operation===============
void list()
{
int i=0;
int length;
printf(“list->%s\n”,recvbuf);
memset(sendbuf,’\0’,sizeof(sendbuf));
while(i<total)
{
length=strlen(chatter_online[i].username);
printf(“sendbuf_length:%d\n”,strlen(sendbuf));
strncpy(&sendbuf[strlen(sendbuf)], chatter_online[i].username,length);
sendbuf[strlen(sendbuf)]=’|’;
i++;
}
printf(“list-send->%s\n”,sendbuf);
(void) sendto(sock, sendbuf, sizeof(recvbuf), 0,(struct sockaddr *)&fsin, sizeof(fsin));

}

void changecode()
{
char code_name[10];
char old_code[10];
char new_code[10];
int i=2,j=0;
int m=0,n=0,t=0;

FILE *fp1;
if((fp1=fopen(“E:\ltcx\server_main\”,“r”))==NULL)
{
printf(“存储文件不存在!”);
fclose(fp1);
return ;
}

memset(code_name,’\0’,sizeof(code_name));
memset(old_code,’\0’,sizeof(old_code));
memset(new_code,’\0’,sizeof(new_code));

printf(“client->server:%s\n”,recvbuf);

while(recvbuf[i]!=’%’) //存旧密码
{
old_code[j]=recvbuf[i];
j++;
i++;
}
printf(“old_code->%s\n”,old_code);

j=0;

while(recvbuf[i+1]!=’*’) //存新密码
{
new_code[j]=recvbuf[i+1];
i++;
j++;
}
printf(“new_code->%s\n”,new_code);
j=0;

while(recvbuf[i+2]!=’\0’) //存用户名
{
code_name[j]=recvbuf[i+2];
i++;
j++;
}
printf(“code_name->%s\n”,code_name);

//==
while(!feof(fp1)) //将库中信息读到结构体中
{
fread(&user[m],sizeof(struct user_info),1,fp1);
m++;
}
fclose(fp1);

printf(“now m1=%d\n”,m);

fp1=fopen(“E:\ltcx\server_main\”,“w”) ;
while(n<m) //进行匹配修改
{
if(strcmp(code_name,user[n].username)==0)
{
if(strcmp(old_code,user[n].passwd)==0)
{
memset(user[n].passwd,’\0’,sizeof(user[n].passwd));
strcpy(user[n].passwd,new_code);
while(t<m)
{
fwrite(&user[t],sizeof(struct user_info),1,fp1);
t++;
printf(“存盘成功!\n”);
}
fclose(fp1);
printf(“存盘完成!\n”);
memset(recvbuf,’\0’,sizeof(recvbuf));
memcpy(recvbuf,“密码修改成功!”,strlen(“密码修改成功!”));
(void) sendto(sock, recvbuf, strlen(recvbuf), 0,(struct sockaddr *)&fsin, sizeof(fsin));
return ;
}
else
{
memset(recvbuf,’\0’,sizeof(recvbuf));
memcpy(recvbuf,“旧密码不正确!”,strlen(“旧密码不正确!”));
(void) sendto(sock, recvbuf, strlen(recvbuf), 0,(struct sockaddr *)&fsin, sizeof(fsin));
return ;
}
}
n++;
}
}

void operation()
{
printf(“op->%s\n”,recvbuf);
switch(recvbuf[1])
{
case ‘#’: list(); break;
case ‘$’: changecode(); break;
}
}
void reset()
{
int old_total=total;
int i=0;
int total=0;
memset(chatter_online[old_total].username,’\0’,sizeof(chatter_online[old_total].username));
memset(chatter_online[total].username,’\0’,sizeof(chatter_online[total].username));
memcpy(&chatter_online[total].save_sin, &fsin,sizeof(struct sockaddr_in));
total++;
printf("\nreset all user’s process is %d\n",total);
}

//--------------------------------------------operation end--------------------------------------------------------

void main()
{
int alen;
int place1=0;
int len=0;
loop: WSADATA wsadata;
if (WSAStartup(WSVERS, &wsadata)) errexit(“WSAStartup failed\n”);

sock = passiveUDP(service);
printf("server has started!\n");
memset(recvbuf,'\0',sizeof(recvbuf));
memset(sendbuf,'\0',sizeof(sendbuf));

alen = sizeof(fsin);

while(1)
{
	memset(recvbuf,'\0',sizeof(recvbuf));
	memset(sendbuf,'\0',sizeof(sendbuf));

	if ((len=recvfrom(sock, recvbuf, sizeof(recvbuf), 0, (struct sockaddr *)&fsin, &alen))==SOCKET_ERROR)
	{	printf("-->recvfrom client error!\n");
	    printf("\nERRor=%d\n",WSAGetLastError());
		for(int w=0;w<total;w++)
			sendto(sock, "@+)", strlen("@+)"), 0,(struct sockaddr *)&chatter_online[w].save_sin, sizeof(chatter_online[w].save_sin));
		closesocket(sock);
		WSACleanup();
		goto loop;
	}
    
	printf("main-->buf->:%s\n",recvbuf);	

	switch(recvbuf[0])
	{
		case '&': apply();	   break;
		case '@': login();     break;
		case '$': operation(); break;
		case '^': reset();     break;
		default:  chat();      break;
	}
}
closesocket(sock);
WSACleanup();

}

client程序
#include<stdlib.h>
#include<stdio.h>
#include<string.h>
#include <conio.h>
#include<process.h>
#include<winsock.h>

void errexit(const char *,…);
SOCKET connectUDP(const char *,const char *);

#define LINELEN 128
#define WSVERS MAKEWORD(2,0)
#define STKSIZE 16536

char save_name[10]; //不是以’\0’结尾的
//char *host=“172.16.0.12”;
char *host=“localhost”;
char *service=“2009”;
char cmdbuf[4096];

SOCKET s,r;

//cmd=
void list()
{
void chat();
int length;

length=strlen(cmdbuf);
if(send(r,cmdbuf,length,0)==SOCKET_ERROR)
{
	printf("\n     --->发送请求时发生错误!\n\n");
    memset(cmdbuf,'\0',sizeof(cmdbuf));                                                       //┘└ ┘┘┐
	printf("\n     ");
	system("pause");
	chat();
}
 memset(cmdbuf,'\0',sizeof(cmdbuf));
 
 if(recv(r,cmdbuf,sizeof(cmdbuf),0)==SOCKET_ERROR)
 {
	printf("\n     --->接收消息发生错误!\n\n");
	memset(cmdbuf,'\0',sizeof(cmdbuf));                                                       //┘└ ┘┘┐
	printf("\n     ");
    system("pause");
	chat();
 }
 printf("\n     当前在线用户:\n\n");
 printf("                 ┌─────────────────────────────┐\n");
 printf("                 │                                                          │\n");
 printf("                           %s                                                  \n",cmdbuf);
 printf("                 │                                                          │\n");
 printf("                 └─────────────────────────────┘\n");                       
 memset(cmdbuf,'\0',sizeof(cmdbuf));                                                       //┘└ ┘┘┐
 printf("\n                  ");
 system("pause");
 chat();

}

void changecode()
{
void chat();
int length;
int name_length;
int i=0,j=0;

printf("\n     旧密码:");
scanf("%s",&cmdbuf[2]);
cmdbuf[strlen(cmdbuf)]='%'; //sendbuf[strlen(sendbuf)]始终是下一个字符
printf("\n\n     新密码:");
scanf("%s",&cmdbuf[strlen(cmdbuf)]);

cmdbuf[strlen(cmdbuf)]='*';
i=strlen(cmdbuf);

name_length=strlen(save_name);

while(j<name_length)        //将用户名放置sendbuf首部
{
	cmdbuf[i+j]=save_name[j];
	j++;
}

length=strlen(cmdbuf);

// printf(“cmdbuf–>%s\n”,cmdbuf);
if(send(r,cmdbuf,length,0)==SOCKET_ERROR)
{
printf("\n\n —>发送请求时发生错误!\n");
memset(cmdbuf,’\0’,sizeof(cmdbuf));
printf("\n ");
system(“pause”);
chat();
}

memset(cmdbuf,'\0',sizeof(cmdbuf));
 
if(recv(r,cmdbuf,sizeof(cmdbuf),0)==SOCKET_ERROR)
{
	 printf("\n\n     返回状态时,客户端连接发生错误。。。\n");
	 memset(cmdbuf,'\0',sizeof(cmdbuf));
	 printf("\n     ");
	 system("pause");
	 chat();
}
 
 printf("\n     %s\n\n",cmdbuf);
 memset(cmdbuf,'\0',sizeof(cmdbuf));
 printf("\n     ");
 system("pause");
 chat();

}

void comand()
{
void chat();
char sdf[10];
int i=0;
memset(sdf,’\0’,sizeof(sdf));
system(“cls”);
printf("\n ★ 控 ● 制 ● 台 ★ \n\n");
printf("\n 〓※〓※〓※〓※〓※〓※〓※〓※〓※〓※〓※〓※〓※〓※〓※〓※〓※〓 \n\n");
printf("\n 命令说明: \n\n");
printf(" ┌┄ ┄ ┄ ┄ ┄ ┄ ┄ ┄ ┄ ┄ ┄ ┄ ┄ ┄ ┄ ┄ ┄ ┄ ┄ ┄ ┄┐\n");
printf(" ┆ ┆ \n");
printf(" ┆1.list—>显示所以在线用户 2.chcd—>修改当前用户密码 ┆\n");
printf(" ┆ ┆\n");
printf(" ┆3.back—>返回聊天界面 4.endchat—>退出聊天程序 ┆\n");
printf(" └┄ ┄ ┄ ┄ ┄ ┄ ┄ ┄ ┄ ┄ ┄ ┄ ┄ ┄ ┄ ┄ ┄ ┄ ┄ ┄ ┄ ┄┘\n");

memset(cmdbuf,'\0',sizeof(cmdbuf));
printf("\n     sys:\\>");

cmdbuf[0]='$';
scanf("%s",sdf);
if(strcmp(sdf,"list")==0)     { i++;   cmdbuf[1]='#';     list();			   }
if(strcmp(sdf,"chcd")==0)     { i++;   cmdbuf[1]='$';     changecode();		   }
if(strcmp(sdf,"endchat")==0)  { i++;    printf("     \n     ");   exit(1);	   }
if(strcmp(sdf,"back")==0)     { i++;     system("cls");     chat();   return ; }
if(i==0) 
{
	printf("     \' %s \' 不是内部处理命令或批处理文件\n",sdf);
	memset(cmdbuf,'\0',sizeof(cmdbuf));
	printf("\n     ");
	system("pause");
	chat();
}

}
//------------------------------------end cmd---------------------------------

//apply
int apply()
{
void display();

system("cls");
printf("\n\n\t\t※〓¤※〓¤--欢-迎-注-册-聊-天-账-号--¤〓※¤〓※\n");
printf("\n\t\t请按提示步骤进行操作\n\n\t\t备注:密码和用户名都超过十位\n\n\t\t------->:\n");

char buf[4096];
int nchars;
char code[10];
int place;
char test_ch[15];
int i,j;

memset(buf,'\0',sizeof(buf));
buf[0]='&';
printf("\n\t\t昵  称:");   

scanf("%s",&buf[1]);  
buf[strlen(buf)]='|';
place=strlen(buf);

printf("\n\n\t\t密  码:");   

for(i=0;i<15;i++)
	{
       test_ch[i]=getch();
	   if(test_ch[i]==13)
	   {
		   for(j=0;j<i;j++)
				buf[place+j]=test_ch[j];
		   buf[place+i]='\0';
		   break;
	   }
	   printf("*");
	}

memset(test_ch,’\0’,sizeof(test_ch));
j=0;

printf("\n\n\t\t请再次输入密码:");
//==
for(i=0;i<15;i++)
	{
       test_ch[i]=getch();
	   if(test_ch[i]==13)
	   {
		   for(j=0;j<i;j++)
				code[j]=test_ch[j];
		   code[i]='\0';
		   break;
	   }
	   printf("*");
	}


if(strcmp(&buf[place],code)!=0) 
{
	printf("\n\n\t\t两次输入的密码不一致!\n");
	return 0;
}

nchars=strlen(buf);

if(send(s,buf,nchars,0)==SOCKET_ERROR)
{
		printf("\n\n\t\t连接服务器发生错误!\n");
		return 0;
}

memset(buf,'\0',sizeof(buf));    

if(recv(s,buf,sizeof(buf),0)==SOCKET_ERROR)
{
	printf("\n\n\t\t连接服务器发生错误!\n");
	return 0;
}

if(strcmp(buf,"1")==0)
{
	printf("\n\n\t\t恭喜你,账号注册成功!\n");
	_sleep(1000);
	display();
	return 1;
}

if(strcmp(buf,"0")==0) 
{
	printf("\n\n\t\t此昵称已被使用!\n");
	_sleep(1000);
	return 0;
}

if(strcmp(buf,"2")==0)
{
	printf("\n\n\t\t服务器发生错误,注册未能成功!\n");
	_sleep(1000);
	return 0;

}

}

//------------------------------------apply end------------------------------------

//=login=======

int login()
{
char buf[4096];
char test_ch[15];
int nchars;
int i=1,m,j;
int place;
memset(buf,’\0’,sizeof(buf));
buf[0]=’@’;
printf("\n\t\t━━━━━━━━━━━━━━━━━━━━━━━\n");
printf("\n\t\t用户名:");
scanf("%s",&buf[1]);

buf[strlen(buf)]='|';
place=strlen(buf);

printf("\n\n\t\t密  码:");  
//==
for(m=0;m<15;m++)
	{
       test_ch[m]=getch();
	   if(test_ch[m]==13)
	   {
		   for(j=0;j<m;j++)
				buf[place+j]=test_ch[j];
		   buf[place+m]='\0';
		   break;
	   }
	   printf("*");
	}
//==
//scanf("%s",&buf[strlen(buf)]);
	//fgets(&buf[strlen(buf)],sizeof(buf),stdin);

// printf("%s\n",buf);
memset(save_name,’\0’,sizeof(save_name));

while(buf[i]!='|')      //保存用户名给chat函数用
{
	save_name[i-1]=buf[i];
	i++;
}



nchars=strlen(buf);

if(send(s,buf,nchars,0)==SOCKET_ERROR)
{
		printf("\n\n\t\t连接服务器发生错误!\n");
		printf("\n\n\t\t");
		return 0;
}
     
memset(buf,'\0',sizeof(buf));    

if(recv(s,buf,sizeof(buf),0)==SOCKET_ERROR)
{
	printf("\n\n\t\t连接--服务器发生错误!\n");
	printf("\n\n\t\t");
	return 0;
}
	
if(strcmp(buf,"1")==0)
{
	printf("\n\n\t\t登录成功!\n");
	printf("\n\n\t\t正在分配座位,请稍候.");
	for(int m=0;m<3;m++)
	{
		_sleep(450);
		printf(".");
	}
	printf("\n");
	return 1;
}
else 
{
	printf("\n\n\t\t%s\n\n",buf);
	printf("\n\n\t\t");
    _sleep(800); 
	return 0;
}

}
//-------------------------------------login end-----------------------------------

//=chat end
void reset_server()
{
char sendbuf[2046];
memset(sendbuf,’\0’,sizeof(sendbuf));
sendbuf[0]=’^’;
_sleep(500);
if(send(s,sendbuf,strlen(sendbuf),0)==SOCKET_ERROR)
{
printf("\n —>服务器发生故障!\n");
printf("\n 即将退出聊天室。。。\n");
exit(1);
}
}
void send_info()
{
char sendbuf[4096];
int length;
int name_length;
int i=0;
char *cmd="-cmd";
void recv_info();
memset(sendbuf,’\0’,sizeof(sendbuf));

name_length=strlen(save_name);

while(i<name_length)        //将用户名放置sendbuf首部
{
	sendbuf[i]=save_name[i];
	i++;
}


sendbuf[name_length]=':';


printf("\n     >>");

fgets(&sendbuf[name_length+1],sizeof(sendbuf),stdin);
sendbuf[strlen(sendbuf)]='\0';
if(strncmp(cmd,&sendbuf[name_length+1],4)==0)
{
	comand();
	return ;
}


length=strlen(sendbuf);

// _beginthread((void (*)(void *))recv_info,STKSIZE,NULL);
if(send(s,sendbuf,length,0)==SOCKET_ERROR)
{
printf("\n —>发送消息时发生错误!\n");
printf("\n 即将退出聊天室。。。\n");
exit(1);
}
memset(sendbuf,’\0’,sizeof(sendbuf));
//return 1;
}

void recv_info()
{
char recvbuf[4096];
int nchars;

nchars=sizeof(recvbuf);
memset(recvbuf,'\0',sizeof(recvbuf));

// _beginthread((void (*)(void *))send_info,STKSIZE,NULL);
if(recv(s,recvbuf,nchars,0)==SOCKET_ERROR)
{
printf("\n —>接收消息发生错误!\n");
printf("\n 即将退出聊天室。。。\n");
exit(1);
}
if(strcmp(recvbuf,"@+)")==0)
{
reset_server();
return ;
}
printf("->%s\n >>",recvbuf);

}

void recv_info_chat()
{
while(1)
recv_info();
}

void send_info_chat()
{
while(1)
send_info();
}

void chat()
{
system(“cls”);
printf("\n ★ 聊 ● 天 ● 室 ★ \n\n");
printf("\n 〓○※●※○※●※○※●※○※●※○※●※○※●※○※●※○※●〓\n\n");
printf("\n 提示:输入"-cmd"进入控制台,可使用更多控制 \n");
//while(1) recv_info();
_beginthread((void (*)(void ))recv_info_chat,STKSIZE,NULL);
// _beginthread((void (
)(void *))send_info_chat,STKSIZE,NULL);
while(1) send_info_chat();

}

//-------------------------------------chat-------------------------------------------

//●○★☆▲△※¤〓

//=display====

void display()
{
void describe();
int sel;

system("cls");

printf("\n\t\t◇※〓〓〓〓〓〓☆聊☆天☆室☆〓〓〓〓〓〓※◇\n");
printf("\t\t◆                                          ◆\n");
printf("\t\t◇         1.注册用户    2.登录空间         ◇\n");
printf("\t\t◆                                          ◆\n");
printf("\t\t◇         3.使用说明    0.退出系统         ◇\n");
printf("\t\t◆                                          ◆\n");
printf("\t\t◇※-------client version(9.0.2)----------※◇\n");
printf("\n\t\t请选择:");
scanf("%d",&sel);
switch(sel)
{
case 1: apply();    break;
case 2: if(login()) chat();    break;
case 3: describe(); break;
case 0: printf("\n\t\t感谢使用本产品,您已安全退出客户端!\n\n\t\t"); return ;
default: printf("\n\n\n\t\t非法操作!\n\n\n\n"); break;
}

}

void describe()
{
char sel;
system(“cls”);
printf("\n ※〓聊天室客户端软件使用说明:\n\n");
printf(" ┌───────────────────────────┐\n");
printf(" │ 1、按相关操作说明提示,注册用户账号 │\n");
printf(" │ │\n");
printf(" │ 2、进入登录部分,用已注册的账号进入聊天室 │\n");
printf(" │ │\n");
printf(" │ 3、进入聊天室后,就可以聊天了,聊天过程中 │\n");
printf(" │ 输入-cmd即可以进入控制台 │\n");
printf(" │ │\n");
printf(" │ 4、每个用户第一次进入聊天室后,系统都会发 │\n");
printf(" │ 送—>username:告诉每个在线用户 │\n");
printf(" └───────────────────────────┘\n\n");
printf(" ────────────────────────────\n");
printf("\n -------->按0显示主页面,退出按其它任意键。。。。");
getchar();
scanf("%c",&sel);
printf("\n\n\n\n");
if(sel==‘0’)
{
system(“cls”);
display();
}
else
return;
}
//-------------------------------------end display------------------------------------
void main() //主程序main函数
{
WSADATA wsadata;

if (WSAStartup(WSVERS, &wsadata))     errexit("WSAStartup failed\n");
	
s=connectUDP(host,service);
r=connectUDP(host,service);
display();

}

猜你喜欢

转载自blog.csdn.net/niecheng123/article/details/89735742
今日推荐