资源简介
BUPT,计算机学院大二下年课程设计,DNS中继服务器的设计与实现,里面整合了完整的源代码、实验报告等,供参考。
代码片段和文件信息
#include “head.h“
/* Set expire time of the specified record */
void Set_ID_Expire(ID_Trans_Unit* record int ttl)
{
record->expire_time = time(NULL) + ttl; /* expire_time = time now + time to live */
}
/* Check whether the record is expired */
int Check_ID_Expired(ID_Trans_Unit* record)
{
return record->expire_time > 0 && time(NULL) > record->expire_time;
}
/* Register new ID into ID_Trans_Table */
unsigned short Register_New_ID(unsigned short ID SOCKADDR_IN temp BOOL if_done)
{
int i = 0;
for (i = 0; i != MAX_ID_TRANS_TABLE_SIZE; ++i)
{
/* Find out overdue record or a record which was analysed completely */
if (Check_ID_Expired(&ID_Trans_Table[i]) == 1 || ID_Trans_Table[i].done == TRUE)
{
ID_Trans_Table[i].old_ID = ID; /* Set ID */
ID_Trans_Table[i].client = temp; /* socket_addr */
ID_Trans_Table[i].done = if_done; /* Mark whether analysis completed */
Set_ID_Expire(&ID_Trans_Table[i] ID_EXPIRE_TIME);
ID_Count++;
if (debug_level)
{
printf(“New ID : %d registered successfully\n“ i + 1);
printf(“#ID Count : %d\n“ ID_Count);
}
break;
}
}
if (i == MAX_ID_TRANS_TABLE_SIZE) /* Register failed */
return 0;
return (unsigned short)i + 1; /* Return new ID */
}
/* Convert buf content to url and save into dest */
void Convert_to_Url (char* buf char* dest)
{
int i = 0 j = 0 k = 0 len = strlen(buf);
while (i < len)
{
if (buf[i] > 0 && buf[i] <= 63) /* Count */
{
for (j = buf[i] i++; j > 0; j-- i++ k++) /* Copy the url */
dest[k] = buf[i];
}
if (buf[i] != 0) /* If this is not the end put a dot into dest */
{
dest[k] = ‘.‘;
k++;
}
}
dest[k] = ‘\0‘; /* Set the end */
}
/* Output the whole packet */
void Output_Packet(char *bufint length)
{
unsigned char unit;
printf(“Packet length = %d\n“ length);
printf(“Details of the package:\n“);
for(int i = 0; i < length; i++)
{
unit =(unsigned char)buf[i];
printf(“%02x “ unit);
}
printf(“\n“);
}
/* Receive packet from exterior */
void Receive_from_Extern()
{
char buf[MAX_BUF_SIZE] url[65];
memset(buf 0 MAX_BUF_SIZE);
int length = -1;
length = recvfrom(extern_sock buf sizeof(buf) 0 (struct sockaddr*)&external &length_client); /* Receive DNS packet from exterior */
if (length > -1)
{
if (debug_level)
{
printf(“\n\n---- Recv : Extern [IP:%s]----\n“ inet_ntoa(external.sin_addr));
/* Output time now */
time_t t = time(NULL);
char temp[64];
strftime(temp sizeof(temp) “%Y/%m/%d %X %A“ localtime(&t));
printf(“%s\n“ temp);
if (debug_level == 2)
Output_Packet(buf length);
}
/* Get ID index */
unsigned short *pID = (unsigned short *)ma
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2019-06-15 23:28 1814陈斌-1815李奕阳-1816罗阳\
目录 0 2019-06-15 23:28 1814陈斌-1815李奕阳-1816罗阳\可执行文件\
文件 193536 2019-06-09 00:00 1814陈斌-1815李奕阳-1816罗阳\可执行文件\dnsrelay.exe
文件 80 2019-06-05 23:05 1814陈斌-1815李奕阳-1816罗阳\可执行文件\dnsrelay.txt
目录 0 2019-06-15 23:28 1814陈斌-1815李奕阳-1816罗阳\源代码文件\
文件 80 2019-06-05 23:05 1814陈斌-1815李奕阳-1816罗阳\源代码文件\dnsrelay.txt
文件 3726 2019-06-09 00:01 1814陈斌-1815李奕阳-1816罗阳\源代码文件\head.h
文件 14165 2019-06-09 00:01 1814陈斌-1815李奕阳-1816罗阳\源代码文件\main.cpp
目录 0 2019-06-15 23:28 1814陈斌-1815李奕阳-1816罗阳\设计报告\
文件 4799488 2019-06-09 00:11 1814陈斌-1815李奕阳-1816罗阳\设计报告\1814陈斌-1815李奕阳-1816罗阳.doc
文件 2131851 2019-06-09 00:11 1814陈斌-1815李奕阳-1816罗阳\设计报告\1814陈斌-1815李奕阳-1816罗阳.pdf
- 上一篇:FL古风软音源
- 下一篇:CISSP考试错题集.docx
相关资源
- 北邮形式语言自动机考试卷.zip
- 北邮大三软件工程课程历年考试题目
- 北邮通信原理第三版课后答案
- 北邮现代交换原理实验报告全
- 北邮编译原理课件 配有期中期末试卷
- 通信原理答案 周炯槃 北京邮电大学
- 通信原理合订本2005-周炯盘-北邮.pdf
- 信息隐藏技术—隐写术与数字水印北
- 基于QT Creator5.4的酒店管理系统
- 北邮《概率统计》+《数字电路》期
- 北邮概率论与随机过程 课件完整版
- 北邮大三下 数据库实验报告合集
- 北京邮电大学软件工程温控系统平时
- 北邮数电实验电风扇
- 2015北邮银行大作业
- 数字电路与逻辑设计北邮版
- 北邮信息网络应用静态网页实验报告
- 北邮 现代通信技术 复习资料
- 北邮通信原理杨鸿文老师课件.rar
- 北邮下一代网络实验报告
- 北邮考研复试笔试题目汇总
- 北邮计算机图形学课件附试卷
- BUPT大数据技术导论期末复习提纲
- DNS中继服务器 计算机网络 北邮
- 北邮-物联网安全资料
- 北邮 计算机网络 滑动窗口协议 选择
- 编译原理课件 北邮
- 北邮软件工程分布式系统中需求定义
- 北邮微机系统与接口技术小学期报告
- 北邮编译原理实验二:语法分析程序
评论
共有 条评论