• 大小: 35KB
    文件类型: .zip
    金币: 2
    下载: 1 次
    发布日期: 2021-05-22
  • 语言: 其他
  • 标签: chordDHT  

资源简介

chord算法实现,基于DHT的四大算法之一。

资源截图

代码片段和文件信息

// Chord.cpp : 定义控制台应用程序的入口点。
//

#include “stdafx.h“
#include “util.h“

const int M = 5;
const int N= 1<
typedef struct tag_pair_kv{
int key;
char host[N];
}pair_kv;
struct hash_table_dht_entry
{
int node_id; //节点id
int successor;//后继节点
pair_kv pair;
};
struct hash_table_dht
{
bool bon_;
hash_table_dht_entry record[M];
int next;
};

int set_table(hash_table_dht* tableint node_id)
{
int ret = -1;
assert(0<=node_id for(int i=node_id+1;i != node_id;){
if(table[i].bon_){
ret = i;
break;
}
i = table[i].next;
}
return ret; 
}

int _tmain(int argc _TCHAR* argv[])
{
/*
char* szMsg1 =“abcdefg“;
digest_type ret1;
sha_1(szMsg1strlen(szMsg1)&ret1);
for(int i=0;i<5;++i){
printf(“%x “ret1._block[i]);
}
printf(“\n“);
char * szMsg2 =“abcdefh“;
digest_type ret2;
sha_1(szMsg2strlen(szMsg2)&ret2);
for(int i=0;i<5;i++){
printf(“%x “ret2._block[i]);
}

printf(“\n“);
digest_type d;
int ret = distance(ret1ret2&d);
printf(“ret =%d:“ret);
for(int i=0;i<5;i++){
printf(“%x “d._block[i]);
}
*/
//m =5 ;chord环用32(2^5)个节点 
//文件节点
char* fname1= “abc.txt“;
char* fname2=“123.rmvb“;
char* fname3 =“hello.mp3“;
char* fname4 =“dds.pdf“;

//在线节点
char* hostIp1=“192.168.0.1:5557“;
char* hostIp2=“222.220.14.231:80“;
char* hostIp3=“151.78.24.120:3074“;

const int num = (1< printf(“num = %d\n“num);
hash_table_dht node_table[num];
//reset table
for(int i=0;i node_table[i].bon_ = false;
node_table[i].next = (i+1)%(1< }

//生成
int key1key2key3key4;
hash(fname1strlen(fname1)&key1);
hash(fname2strlen(fname2)&key2);
hash(fname3strlen(fname3)&key3);
hash(fname4strlen(fname4)&key4);
printf(“key1=%dkey2=%dkey3=%dkey4=%d\n“key1key2key3key4);
int node_id1node_id2node_id3;
hash(hostIp1strlen(hostIp1)&node_id1);
hash(hostIp2strlen(hostIp2)&node_id2);
hash(hostIp3strlen(hostIp3)&node_id3);
printf(“node_id1=%dnode_id2=%dnode_id3=%d\n“node_id1node_id2node_id3);
node_table[node_id1].bon_ = true;

node_table[node_id2].bon_ = true;
node_table[node_id3].bon_ = true;
//(a+2^(k-i))mod 2^m  1<= k<=m

int t = set_table(node_tablenode_id1);
printf(“t = %d“t);

getchar();
return 0;
}


 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2013-04-16 13:59  Chord\
     目录           0  2013-04-16 13:59  Chord\Chord\
     文件         882  2013-03-25 23:59  Chord\Chord.sln
     文件       33280  2013-04-05 17:07  Chord\Chord.suo
     文件        2369  2013-03-27 01:29  Chord\Chord\Chord.cpp
     文件        5269  2013-04-04 20:00  Chord\Chord\Chord.vcxproj
     文件        3145  2013-04-04 20:00  Chord\Chord\Chord.vcxproj.filters
     文件         143  2013-03-25 23:59  Chord\Chord\Chord.vcxproj.user
     文件       11892  2013-04-05 17:00  Chord\Chord\chordring.cpp
     文件        1702  2013-04-05 16:29  Chord\Chord\chordring.h
     文件        3892  2013-04-04 18:18  Chord\Chord\circullinklist.hpp
     文件         497  2013-04-05 16:04  Chord\Chord\commonEnv.cpp
     文件         416  2013-04-05 16:03  Chord\Chord\commonEnv.h
     文件        1820  2013-04-05 14:11  Chord\Chord\debuger.cpp
     文件        1068  2013-04-05 15:25  Chord\Chord\debuger.h
     文件         668  2013-04-05 16:33  Chord\Chord\environment.cpp
     文件         620  2013-04-05 16:41  Chord\Chord\environment.h
     文件        5042  2013-04-05 15:54  Chord\Chord\fingerTable.cpp
     文件        1311  2013-04-05 15:51  Chord\Chord\fingerTable.h
     文件        1963  2013-04-05 15:21  Chord\Chord\hash.cpp
     文件        1087  2013-04-05 15:18  Chord\Chord\hash.h
     文件        3215  2013-04-05 16:00  Chord\Chord\keyTable.cpp
     文件        1057  2013-04-05 16:01  Chord\Chord\keyTable.h
     文件        5408  2013-04-05 16:01  Chord\Chord\linkList.hpp
     文件        4319  2013-04-05 17:07  Chord\Chord\main.cpp
     文件        7149  2013-04-05 15:37  Chord\Chord\node.cpp
     文件        1634  2013-04-05 15:26  Chord\Chord\node.h
     文件        1539  2013-03-25 23:59  Chord\Chord\ReadMe.txt
     文件         210  2013-03-25 23:59  Chord\Chord\stdafx.cpp
     文件         260  2013-04-02 21:21  Chord\Chord\stdafx.h
     文件         236  2013-03-25 23:59  Chord\Chord\targetver.h
............此处省略4个文件信息

评论

共有 条评论

相关资源