资源简介
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
相关资源
- 数据结构课件(北邮)
- 信号与系统郑君里北邮课件
- 卫星通信知识点总结不包含计算题
- 北邮 现代交换原理实验 sip电话 抓包
- 分布式温控系统,北邮软件工程作业
- 北邮高操期末试题答案及知识点总结
- 北邮2015-2016专硕概率论与随机过程期
- 信号与系统——北邮课件.pptx
- 北邮大二上计算机系统基础.rar
- 北邮软件工程-分布式温控系统
- 光纤通信PDF课件---北邮
- 基于WinDLX的CPU流水线观察实验报告北
- 图像视频处理coursework
- 北邮2016年通信原理801考研真题
- 北邮-计算机网络期末试题含答案
- 北邮软件工程试题.zip
- 计算机网络第五版中文参考答案.zip
- 北邮《下一代Internet技术》 官方2017计
- my_ground_plane.tar.gz
- 北邮宽带通信网原理
- 低频功率放大器电路图
- 北邮考研通原模拟题第三套--带参考答
- 微波仿真实验报告
- 北京邮电大学编译原理期末试卷
- 北邮复试笔试题回忆版
- 北邮数据结构课程设计-图书馆管理系
- 计算机网络实验报告 VOIP PJSIP
- 北邮计算机院软件工程期末复习真题
- 吕玉琴--信号与系统--北邮
- 北邮计算机图形学作业二
评论
共有 条评论