mysql
create table user
(
id int auto_increament primary key,
account varchar(20) not null unique,
passwd varchar(20) not null,
phone varchar(20) not null unique
)
服务端程序
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<arpa/inet.h>
#include<malloc.h>
#include<mysql/mysql.h>
#define server_port "5000"
#define MAXPENDING 1000
#define isntUser -3
#define login_status 1
#define enroll_status 2
#define modifyPasswd_status 3
#define exist_user 1
#define exist_phone 1
int sqlLen;
void dealUserError(const char *msg,const char *detail);
void dealSystemError(const char *msg);
void getClientInformation(int clntSocket,char **recvInfo);
int login(char * temp[10]);
int enroll(char * temp[10]);
int modifyPasswd(char *temp[10]);
void sendInformation(int clntSocket,char *status);
int isExistUser(char *user);
int isExistPhone(char *phone);
int checkRecvString(int clntSocket ,char *temp[10]);
int checkRecvString(int clntSocket ,char *temp[10])
{
int k = atoi(temp[0]);
int i = 0;
for(;temp[i];i++)
;
//printf("string_num = %d\n",i);
if(k == login_status)
{
if(i != 3)
{
sendInformation(clntSocket,"error");
return -1;
}
}
else if(k == enroll_status)
{
if(i != 4)
{
sendInformation(clntSocket,"error");
return -1;
}
}
else if(k == modifyPasswd_status)
{
if(i != 4)
{
sendInformation(clntSocket,"error");
return -1;
}
}
else
{
sendInformation(clntSocket,"error");
return -1;
}
return 1;
}
void executeOper(int clntSocket,char *temp[10]);
void sendInformation(int clntSocket,char *status)
{
ssize_t num = send(clntSocket,status,strlen(status),0);
//printf("%d\n",num);
close(clntSocket);
}
void executeOper(int clntSocket,char *temp[10])
{
int n = atoi(temp[0]);
int check_recv_string = checkRecvString(clntSocket,temp);
if(check_recv_string == -1)
return ;
else
{
int status;
if(n == login_status) //表示登录操作
{
puts("登录");
// nothingOper(temp);
status = login(temp);
//printf("status = %d\n",status);
if(status == isntUser)
sendInformation(cln