friendlist.c

来自「linux下一个聊天工具代码」· C语言 代码 · 共 77 行

C
77
字号
#include "friendlist.h"
struct Friend friends_list[MAX_FRIEND_COUNT];
int friends_count;

int friends_list_init()
{
    friends_count = 0;
    return 1;
}

int new_friend(char* nickname,unsigned long id,unsigned long ip,unsigned short port,unsigned char* key)
{        
    if(friends_count >= MAX_FRIEND_COUNT) return 0;
    if(nickname != 0) strncpy(friends_list[friends_count].nickname,nickname,MAX_NICKNAME_LEN);
    friends_list[friends_count].id = id;
    friends_list[friends_count].ip = ip;
    friends_list[friends_count].port = port;
    if(key != 0) memcpy(friends_list[friends_count].key,key,KEY_LEN);
    return ++friends_count;    
}

int add_friend_online(unsigned long id,unsigned long ip,unsigned short port,unsigned char* key)
{
    int i;
    for(i = 0; i < friends_count; i++){
        if(friends_list[i].id == id)
        {
            friends_list[i].ip = ip;
            friends_list[i].port = port;
            memcpy(friends_list[i].key,key,KEY_LEN);
        }
    }
    if( i == friends_count )
    {
        return new_friend("",id,ip,port,key);
    }
    return 1;
}

unsigned long friends_list_query_ip(unsigned long id)
{
    int i;
    
    for(i = 0; i < friends_count; i++){
        if(friends_list[i].id == id)
            return friends_list[i].ip;
    }
}

unsigned long friends_list_query_port(unsigned long id)
{
    int i;
    
    for(i = 0; i < friends_count; i++){
        if(friends_list[i].id == id)
            return friends_list[i].ip;
    }
}

unsigned char* friends_list_query_key(unsigned long id)
{
    int i;
    
    for(i = 0; i < friends_count; i++) { 
        if(friends_list[i].id == id)        
            return friends_list[i].key;
    }
}

int friends_list_print()
{
	int i;
	for(i = 0; i < friends_count; i++) {
		printf("The %dth: %d %s %d\n",i,friends_list[i].id,inet_ntoa(friends_list[i].ip),friends_list[i].port);
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?