资源简介

在Linux操作系统下,用c语言写的一篇通讯录,主要有增删改查的功能,里面有数据库的表,各位可以借鉴一下。

资源截图

代码片段和文件信息

#include  
#include  
#include  
#include  
#include  
#include  
#include  
#include  

#define portnumber 3333

struct message
{
    int id;
    char name[20];
char age[20];
    char tel[20];
    char addr[20];
    int action;
};

int main(int argc char *argv[]) 

int sockfd; 
char buffer[1024]; 
struct sockaddr_in server_addr; 
struct hostent *host; 
int nbytes;
struct message msg;
int n_read;
int i;
char ch[10];

/*使用hostname查询host名字*/
if(argc!=2) 

fprintf(stderr“Usage:%s hostname \a\n“argv[0]); 
exit(1); 


if((host=gethostbyname(argv[1]))==NULL) 

fprintf(stderr“Gethostname error\n“); 
exit(1); 


/*客户程序开始建立sockfd描述符*/
if((sockfd=socket(AF_INETSOCK_STREAM0))==-1) //AF_INET:Internet;SOCK_STREAM:TCP 

fprintf(stderr“Socket Error:%s\a\n“strerror(errno)); 
exit(1); 


/*客户程序填充服务端的资料*/
bzero(&server_addrsizeof(server_addr)); //初始化置0 
server_addr.sin_family=AF_INET;          //IPV4
server_addr.sin_port=htons(portnumber);  //(将本机上的short数据转化为网络上的short数据)端口号
server_addr.sin_addr=*((struct in_addr *)host->h_addr); //IP地址

/*客户程序发起连接请求*/
if(connect(sockfd(struct sockaddr *)(&server_addr)sizeof(struct sockaddr))==-1) 

fprintf(stderr“Connect Error:%s\a\n“strerror(errno)); 
exit(1); 


while(1)
{
system(“reset“);
printf(“                 *====================================*\n“);
printf(“                 |         多功能电子通讯录           |\n“);
printf(“                 |                                    |\n“);
printf(“                 |                                    |\n“);
printf(“                 |                            版本:1.0|\n“);
printf(“                 --------------------------------------\n“);
printf(“                 |   1:添加好友信息  2:查看好友信息   |\n“);
printf(“                 |   3:搜索好友信息  4:删除好友信息   |\n“);
printf(“                 |   5:修改好友信息  6:退出           |\n“);
printf(“                 *====================================*\n“);
printf(“                 请输入你所要做的操作:\n“);
printf(“                 insert/display/search/delete/alter/exit:\n“);

char cmd[20];
while(1)
{
     printf(“                 Please input cmd:“);
     scanf(“%s“cmd);

     if(strcmp(cmd“insert“) == 0) //插入操作     
     {
             system(“reset“);
msg.action = 1;
        
printf(“Please input id:\n“);
         scanf(“%d“&msg.id);
         printf(“Please input name:\n“);
         scanf(“%s“msg.name);
printf(“Please input age:\n“);
scanf(“%s“msg.age);
         printf(“Please input tel:\n“);
         scanf(“%s“msg.tel);
         printf(“Please input addr:\n“);
         scanf(“%s“msg.addr);

         write(sockfd&msgsizeof(msg));
read(sockfd&msgsizeof(msg));

if(msg.action == 1)
{
     printf(“insert success!\n“);
}
else
{
     printf(“insert error!\n“);
}

printf(“\nBack to Menu (yes/no)

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2017-03-26 09:38  网络通讯录\
     文件       10993  2017-03-26 09:36  网络通讯录\client
     文件        2048  2017-03-17 14:35  网络通讯录\message.db
     文件        9450  2017-03-26 09:38  网络通讯录\server
     文件        7438  2017-03-26 09:36  网络通讯录\tcp_client.c
     文件        6093  2017-03-17 11:02  网络通讯录\tcp_client.c~
     文件        6103  2017-03-18 14:30  网络通讯录\tcp_server.c
     文件        4736  2017-03-16 15:17  网络通讯录\tcp_server.c~

评论

共有 条评论