学生成绩查询系统C语言代码(分服务器端和客户端).doc
文本预览下载声明
客户端:
#includestdio.h
#includeconio.h
#include winsock.h
#pragma comment(lib , Wsock32.lib )
#define MAX_PWD_LEN 32
#define MAX_USN_LEN 32
char username[MAX_USN_LEN];
char password[MAX_PWD_LEN];
SOCKET sockClient;
int all=0;
char recvn[50];
int connect(char *SrvIP,int SrvPort)
{
WSADATA wsaData;
if(WSAStartup(0x101,wsaData))
{
printf(初始化错误\n);
return 1;
}
sockClient=socket(AF_INET,SOCK_STREAM,0);
if(sockClient == SOCKET_ERROR)
{
printf(建立套接字错误\n);
return 2;
}
SOCKADDR_IN addrSrv;
addrSrv.sin_addr.s_addr=inet_addr(SrvIP);
addrSrv.sin_family=AF_INET;
addrSrv.sin_port=htons(SrvPort);
if(connect(sockClient,(SOCKADDR*)addrSrv,sizeof(SOCKADDR)))
{
printf(连接服务器失败,请检查服务器是否运行\n);
return 3;
}
printf(成功连接服务器\n\n);
send(sockClient,CONNECT,strlen(CONNECT)+1,0);
return 0;
}
void getspwd(char * pwdin)
{
char ctemp;
int itemp = 0;
printf(密 码:);
while((ctemp = getch())!=\r)
{
printf(*);
pwdin[itemp] = ctemp;
itemp++;
}
pwdin[itemp] = 0;
printf(\n);
}
int login(char *username)
{
send(sockClient,LOGIN,strlen(LOGIN)+1,0);
printf(用户名:%s\n,username);
send(sockClient,username,strlen(username)+1,0);
recv(sockClient,recvn,50,0);
if(!strcmp(recvn,1))
{
printf(无此用户,请检查\n);
return 1;
}
getspwd(password);
send(sockClient,password,strlen(password)+1,0);
recv(sockClient,recvn,50,0);
if(!strcmp(recvn,1))
{
printf(密码错误,请检查\n);
return 2;
}
printf(登陆成功\n);
return 0;
}
int query(char *clsnum)
{
send(sockClient,QUERY,strlen(QUERY)+1,0);
send(sockClient,clsnum,strlen(clsnum)+1,0);
recv(sockClient,recvn,50,0);
printf(%s\n,recvn);
return 0;
}
int queryavg()
{
send(sockClient,QUERYAVG,strlen(QUERYAVG)+1,0);
recv(sockClient,recvn,50,0);
printf(%s\n,recvn);
return 0;
}
int quit()
{
send(sockClient,QUIT,strlen(QUIT)+1,0);
closesocket(sockClient);
WSACleanup();
exit(0);
}
int main()
{
printf(******成绩查询系统 客户机******\n\n);
while(1)
{
char com[255];
char option[32]={0};
char para[5][32]={0};
gets(com);
int i=0, j=0, k=0;
显示全部