網(wǎng)絡(luò)編程試驗(yàn)報(bào)告_第1頁
網(wǎng)絡(luò)編程試驗(yàn)報(bào)告_第2頁
網(wǎng)絡(luò)編程試驗(yàn)報(bào)告_第3頁
網(wǎng)絡(luò)編程試驗(yàn)報(bào)告_第4頁
網(wǎng)絡(luò)編程試驗(yàn)報(bào)告_第5頁
已閱讀5頁,還剩20頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

本文格式為Word版,下載可任意編輯——網(wǎng)絡(luò)編程試驗(yàn)報(bào)告

程序?qū)嵺`報(bào)告

一、程序?qū)嵺`概述1、題目名稱:

Linux程序設(shè)計(jì)基礎(chǔ)2、時(shí)間進(jìn)度:

2023年6月19日到2023年7月5日3、開發(fā)環(huán)境:

Ubunto10.04二、問題分析1、功能說明:

①編程實(shí)現(xiàn)快速排序算法;

②實(shí)現(xiàn)文本文件拷貝函數(shù)copy(f_source,f_target);即實(shí)現(xiàn)如下功能:$./copyf1f2

以上程序執(zhí)行后當(dāng)前目錄會(huì)形成一個(gè)新的文件f2,且其內(nèi)容與f1完全一致。

③編寫一個(gè)程序,要求:輸入N個(gè)學(xué)生的學(xué)號(hào)和成績,并保存在stu.txt文本文件中,對(duì)學(xué)生成績進(jìn)行排序并把排序后的結(jié)果輸出到score.txt文件中,同時(shí)在屏幕上輸出高于平均成績的學(xué)生的學(xué)號(hào)和成績。

④編寫一個(gè)程序找出串str1和串str2的所有最長公共子串。

2、解決方案:(1)

將原問題分解為若干個(gè)規(guī)模更小但結(jié)構(gòu)與原問題相像的子問題。遞歸地解這些子問題,然后將這些子問題的解組合為原問題的解。(2)

定義文件指針FILE*fp;表示fp是指向FILE結(jié)構(gòu)的指針變量,通過fp即可找存放某個(gè)文件信息的結(jié)構(gòu)變量,然后按結(jié)構(gòu)變量提供的信息找到該文件,實(shí)施對(duì)文件的操作。(3)

創(chuàng)立一個(gè)結(jié)構(gòu)體儲(chǔ)存學(xué)生的學(xué)號(hào)和成績,利用文件操作寫入文檔。對(duì)成績進(jìn)行排序,將大于平均成績的輸出到屏幕。(4)

創(chuàng)立兩個(gè)數(shù)組,探尋字符串,尋覓最大的匹配子串。三、方案設(shè)計(jì)1、模塊結(jié)構(gòu):

模塊功能圖和模塊描述(1)

在a[left..right]中任選一個(gè)記錄作為基準(zhǔn),以此基準(zhǔn)將當(dāng)前無序區(qū)劃分為左、右兩個(gè)較小的子區(qū)間a[left..pivotpos-1)和a[pivotpos+1..right],并使左邊子區(qū)間中所有記錄的關(guān)鍵字均小于等于基準(zhǔn)記錄(不妨記為pivot)的關(guān)鍵字pivot.key,右邊的子區(qū)間中所有記錄的關(guān)鍵字均大于等于pivot.key,而基準(zhǔn)記錄pivot則位于正確的位置(pivotpos)上,

它無須參與后續(xù)的排序。

劃分的關(guān)鍵是要求出基準(zhǔn)記錄所在的位置pivotpos。劃分的結(jié)果可以簡單地表示為:

a[left..pivotpos-1].keys≤a[pivotpos].key≤a[pivotpos+1..right].keys其中l(wèi)eft≤pivotpos≤right。(2)fopen函數(shù)

用來開啟一個(gè)文件,其調(diào)用的一般形式為:文件指針名=fopen(文件名,使用文件方式)。其中,“文件指針名〞必需是被說明為FILE類型的指針變量,“文件名〞是被開啟文件的文件名?!笆褂梦募绞建暿侵肝募念愋秃筒僮饕??!拔募暿亲址A炕蜃址?dāng)?shù)組。fclose函數(shù)

調(diào)用的一般形式是:fclose(文件指針);正常完成關(guān)閉文件操作時(shí),fclose函數(shù)返回值為0。如返回非零值則表示有錯(cuò)誤發(fā)生。文件的讀寫對(duì)文件的讀和寫是最常用的文件操作。(3)

創(chuàng)立一個(gè)結(jié)構(gòu)體儲(chǔ)存學(xué)生的學(xué)號(hào)和成績,每個(gè)學(xué)生的信息都儲(chǔ)存在一個(gè)數(shù)組里。利用文件操作寫入文檔。

對(duì)成績進(jìn)行排序,更新數(shù)組信息,將大于平均成績的輸出到屏幕。(4)

將兩個(gè)字符串儲(chǔ)存在數(shù)組里,從首地址開始查找一致字符。假使遇到一致字符則開始記錄位置,從該位置開始計(jì)數(shù),到不匹配位置。重新探尋,假使最大長度超過記錄則更新。2、數(shù)據(jù)結(jié)構(gòu):(1)鏈表,遞歸(2)文件操作

(3)文件操作,數(shù)組(4)數(shù)組3、總體流程:給出流程圖(1)

第一步:(初始化)設(shè)置兩個(gè)指針i和j,它們的初值分別為區(qū)間的下界和上界,即i=low,i=high;選取無序區(qū)的第一個(gè)記錄R[i](即R[low])作為基準(zhǔn)記錄,并將它保存在變量pivot中;

其次步:令j自high起向左掃描,直到找到第1個(gè)關(guān)鍵字小于pivot.key的記錄R[j],將R[j])移至i所指的位置上,這相當(dāng)于R[j]和基準(zhǔn)R[i](即pivot)進(jìn)行了交換,使關(guān)鍵字小于基準(zhǔn)關(guān)鍵字pivot.key的記錄移到了基準(zhǔn)的左邊,交換后R[j]中相當(dāng)于是pivot;然后,令i指針自i+1位置開始向右掃描,直至找到第1個(gè)關(guān)鍵字大于pivot.key的記錄R[i],將R[i]移到i所指的位置上,這相當(dāng)于交換了R[i]和基準(zhǔn)R[j],使關(guān)鍵字大于基準(zhǔn)關(guān)鍵字的記錄移到了基準(zhǔn)的右邊,交換后R[i]中又相當(dāng)于存放了pivot;接著令指針j自位置j-1開始向左掃描,如此交替改變掃描方向,從兩端各自往中間靠攏,直至i=j時(shí),i便是基準(zhǔn)pivot最終的位置,將pivot放在此位置上就完成了一次劃分。(2)開啟f1文件

1

開啟f2文件,假使沒有將創(chuàng)立

開啟成功

將f1寫入f2

關(guān)閉f1,f2文件

(3)從屏幕獲取學(xué)生信息

寫入文件

求取成績平均值

將學(xué)生按成績排序

輸出大于平均值的學(xué)生

(4)找到第一個(gè)相等的字符,記錄下位置。查找最大的一致字符,假使有大于前一次探尋的,則更新長度。4、關(guān)鍵算法:給出關(guān)鍵算法描述(1)

voidquickSort(inta[],intleft,intright){inti,j,temp;i=left;j=right;temp=a[left];if(left>right)return;while(i!=j)

2

{

while(a[j]>=tempif(j>i)

a[i++]=a[j];

while(a[i]i)

a[j--]=a[i];}

a[i]=temp;

quickSort(a,left,i-1);quickSort(a,i+1,right);}

(2)

#include

voidmain(intargc,char*argv[]){

FILE*f1,*f2;charc;

f1=fopen(argv[1],\);f2=fopen(argv[2],\);while((c=getc(f1))!=EOF){

printf(\,c);putc(c,f2);}

fclose(f1);fclose(f2);}

(3)

for(i=0;istu[j+1].score){

temp.num=stu[j].num;temp.score=stu[j].score;stu[j].num=stu[j+1].num;stu[j].score=stu[j+1].score;stu[j+1].num=temp.num;stu[j+1].score=temp.score;

3

}}}

(4)

for(i=1;imax?gg[i][j]:max;}else{

gg[i][j]=0;}}}

for(i=len1+1;i>0;--i){

for(j=len2+1;j>0;--j){

if(gg[i][j]==max){

str[max-1]=str2[j-1];max--;break;}}

}

程序?qū)嵺`概述1、題目名稱:

Socket編程基礎(chǔ)(1)時(shí)間服務(wù)器

(2)遠(yuǎn)程文件備份服務(wù)器

2、時(shí)間進(jìn)度:2023年6月19日到2023年7月5日

3、開發(fā)環(huán)境:Ubuntu10.04二、問題分析1、功能說明:

4

①編程實(shí)現(xiàn)時(shí)間服務(wù)器

編寫一個(gè)網(wǎng)絡(luò)時(shí)間服務(wù)器timeserver,該服務(wù)器能應(yīng)具有如下功能:

?夠?yàn)榫W(wǎng)絡(luò)上的用戶提供時(shí)間服務(wù),即為網(wǎng)絡(luò)用戶返回服務(wù)器的當(dāng)前時(shí)間;?記錄發(fā)出請(qǐng)求的網(wǎng)絡(luò)用戶的IP地址(保存到文件中),格式如下:IP地址請(qǐng)求時(shí)間

編寫時(shí)間服務(wù)客戶端timeclient,該客戶端能夠向服務(wù)器發(fā)送時(shí)間服務(wù)請(qǐng)求,并把獲得的時(shí)間返回給用戶。

②編程實(shí)現(xiàn)遠(yuǎn)程文件備份服務(wù)器

分別采用TCP或UDP協(xié)議編寫一個(gè)遠(yuǎn)程數(shù)據(jù)備份服務(wù)器,運(yùn)行客戶端將本地文件備份到遠(yuǎn)程的服務(wù)器中。

服務(wù)器的功能:接受客戶端請(qǐng)求,把客戶端的文件進(jìn)行備份(可以備份到指定的文件夾)。

客戶端的功能:與遠(yuǎn)程服務(wù)器進(jìn)行連接,在連接后把本地的文件發(fā)送給遠(yuǎn)程備份服務(wù)器。

2、解決方案:

服務(wù)器端過程就是socket->bind->listen->accpet->Read,write

而對(duì)于客戶端則是socket->connect->read,write三、方案設(shè)計(jì)1、模塊結(jié)構(gòu):

模塊功能圖和模塊描述

服務(wù)器端:

1、創(chuàng)立套接字;使用socket()

#include#include

intsocket(intdomain,inttype,intprotocol)建立服務(wù)器端的socket套接字

2、綁定套接字到一個(gè)IP地址和一個(gè)端口上;使用bind()

#include#include

intbind(intsockfd,structsockaddr*myaddr,intaddrlen);

3、將套接字設(shè)置為監(jiān)聽模式,以等待連接請(qǐng)求;使用listen()

#include

intlisten(intsockfd,intbacklog)

4、請(qǐng)求到來后,接受連接請(qǐng)求,并返回一個(gè)與此次連接對(duì)應(yīng)的套接字;使用accept()

#include

5

intaccept(intsockfd,structsockaddr*addr,int*addrlen)

此時(shí)新建連接,并創(chuàng)立新的Socket套接字,此時(shí)addr為客戶端的addr信息。

5、用返回的套接字和客戶端進(jìn)行通信;使用recv()和send()

intread(intfd,char*buf,intlen)intwrite(intfd,char*buf,intlen)

6、關(guān)閉當(dāng)前的連接,進(jìn)入等待狀態(tài),繼續(xù)等待客戶端的連接;使用close()

#include

intclose(intsockfd);

7、關(guān)閉服務(wù)器端的套接字描述符;使用close()

#include

intclose(intsockfd);

客戶端:

1、創(chuàng)立客戶端套接字;使用socket()

#include#include

intsocket(intdomain,inttype,intprotocol)

2、向服務(wù)器發(fā)出連接請(qǐng)求;使用connect()

#include#include

intconnect(intsockfd,structsockaddr*servaddr,intaddrlen)

其中參數(shù)servaddr指定遠(yuǎn)程服務(wù)器的套接字地址,包括服務(wù)器的IP地址和端口號(hào)

3、和服務(wù)器端進(jìn)行網(wǎng)絡(luò)通信;使用recv()和send()

intread(intfd,char*buf,intlen)intwrite(intfd,char*buf,intlen)

4、關(guān)閉套接字;使用close()

#include

intclose(intsockfd);

2、數(shù)據(jù)結(jié)構(gòu):

6

文件操作,socket3、總體流程:

server

Socket()Bind()

Listen()clientSocket()Accept()建立連接Connect()阻塞,直到客戶端的連接到達(dá)

Recv()

處理接收到的數(shù)據(jù)

Send()

Close()

4、關(guān)鍵算法:給出關(guān)鍵算法描述1.

Send()DatarequestRecv()DatareplyClose()Client:

recv_msg=recv(sockfd,buf,20,0);//嘗試接收數(shù)據(jù)buf[recv_msg]='\\0';

printf(\

7

server:

while(1)//嘗試獲得數(shù)據(jù){

sin_size=sizeof(structsockaddr_in);if((client_fd=accept(sockfd,(structsockaddr*)}t=time(NULL);

2.client:

fp=fopen(filename,\

if(fp==-1)

printf(\

fread(buf,sizeof(buf),1,fp);fp=fopen(\

server:

buf[recv_msg]=\printf(\

fwrite(buf,strlen(buf),1,fp);fcose(fp);

//開啟文件//讀取文件//寫入文件8

一、程序?qū)嵺`概述1、題目名稱:

Libpcap開發(fā)包使用

2、時(shí)間進(jìn)度:2023年6月19日到2023年7月5日3、開發(fā)環(huán)境:Ubuntu10.04二、問題分析1、功能說明:

(1)獲取網(wǎng)絡(luò)接口名字和掩碼等信息

(2)捕獲數(shù)據(jù)包(單個(gè)數(shù)據(jù)包和多個(gè)數(shù)據(jù)包兩種狀況)(3)以太網(wǎng)數(shù)據(jù)報(bào)捕獲(4)ARP數(shù)據(jù)包捕獲2、解決方案:

1、開啟、讀取設(shè)備,設(shè)置過濾器部分。1.1pcap_read()

1.2pcap_t*pcap_open_live(char*device,intsnaplen,intpromisc,intto_ms,char*errbuf);該函數(shù)用于獲取一個(gè)抽象的包捕獲句柄,

1.3intpcap_setfilter(pcap_t*p,structbpf_program*fp);該函數(shù)用于設(shè)置pcap_compile()解析完畢的過濾規(guī)則2、編譯、優(yōu)化、調(diào)試過濾規(guī)則表達(dá)式部分

2.1intpcap_compile(pcap_t*p,structbpf_program*fp,char*str,intoptimize,bpf_u_int32netmask);該函數(shù)用于解析過濾規(guī)則串,填寫bpf_program結(jié)構(gòu)。3、脫機(jī)方式監(jiān)聽部分。3.1pcap_open_offline()3.2pcap_offline_read()4、本地網(wǎng)絡(luò)設(shè)置檢測部分。

4.1char*pcap_lookupdev(char*errbuf);該函數(shù)返回一個(gè)網(wǎng)絡(luò)設(shè)備接口名,

4.2intpcap_lookupnet(char*device,bpf_u_int32*netp,bpf_u_int32*maskp,char*errbuf);該函數(shù)用于獲取指定網(wǎng)絡(luò)接口的IP地址、子網(wǎng)掩碼。5.主控程序及版本部分6.關(guān)閉程序

voidpcap_close(pcap_t*p)關(guān)閉句柄,釋放資源

三、方案設(shè)計(jì)1、模塊結(jié)構(gòu):

模塊功能圖和模塊描述(1)

charerror_content[PCAP_ERRBUF_SIZE];/*錯(cuò)誤信息*/

structpcap_pkthdrprotocol_header;/*數(shù)據(jù)包頭*/

pcap_t*pcap_handle;/*Libpcap句柄*/

structbpf_programbpf_filter;/*bpf過濾規(guī)則*/

charbpf_filter_string[]=\/*過濾規(guī)則*/

constu_char*packet_content;/*數(shù)據(jù)包內(nèi)容*/

bpf_u_int32net_mask;/*網(wǎng)絡(luò)掩碼*/

bpf_u_int32net_ip;/*網(wǎng)絡(luò)地址*/

char*net_interface;/*網(wǎng)絡(luò)接口*/

net_interface=pcap_lookupdev(error_content);/*獲取網(wǎng)絡(luò)接口*/

pcap_lookupnet(net_interface,/*獲取網(wǎng)絡(luò)地址和掩碼地址*/

pcap_handle=pcap_open_live(net_interface,/*網(wǎng)絡(luò)接口*/BUFSIZ,/*數(shù)據(jù)包大小*/1,/*混雜模式*/0,/*等待時(shí)間*/

error_content);/*錯(cuò)誤信息*//*開啟網(wǎng)絡(luò)接口*/

pcap_compile(pcap_handle,/*Libpcap句柄*//*網(wǎng)絡(luò)地址*//*編譯過濾規(guī)則*/

pcap_setfilter(pcap_handle,/*Libpcap句柄*//*BPF過濾規(guī)則*/

/*設(shè)置過濾規(guī)則*/

packet_content=pcap_next(pcap_handle,/*Libpcap句柄*//*數(shù)據(jù)包信息*/

/*捕獲一個(gè)數(shù)據(jù)包,返回此數(shù)據(jù)包的內(nèi)容*/

printf(\/*輸出網(wǎng)絡(luò)接口名字*/

printf(\/*輸出捕獲的數(shù)據(jù)包的長度*/pcap_close(pcap_handle);/*關(guān)閉Libpcap操作*/

1

return0;}(2)①

intmain(){

charerror_content[PCAP_ERRBUF_SIZE];structpcap_pkthdrprotocol_header;pcap_t*pcap_handle;structbpf_programbpf_filter;charbpf_filter_string[]=\constu_char*packet_content;bpf_u_int32net_mask;bpf_u_int32net_ip;char*net_interface;

net_interface=pcap_lookupdev(error_content);

pcap_lookupnet(net_interface,pcap_handle=pcap_open_live(net_interface,BUFSIZ,1,0,error_content);pcap_compile(pcap_handle,pap_setfilter(pcap_handle,

packet_content=pcap_next(pcap_handle,

printf(\printf(\pcap_close(pcap_handle);}②

voidmain(){

pcap_t*pcap_handle;

charerror_content[PCAP_ERRBUF_SIZE];char*net_interface;

structbpf_programbpf_filter;charbpf_filter_string[]=\

2

bpf_u_int32net_mask;bpf_u_int32net_ip;

net_interface=pcap_lookupdev(error_content);pcap_lookupnet(net_interface,

pcap_handle=pcap_open_live(net_interface,BUFSIZ,1,0,error_content);pcap_compile(pcap_handle,pcap_setfilter(pcap_handle,pcap_loop(pcap_handle,10,callback,

NULL);pcap_close(pcap_handle);}(3)

structether_header{

u_int8_tether_dhost[6];u_int8_tether_shost[6];u_int16_tether_type;};

voidmain(){

charerror_content[PCAP_ERRBUF_SIZE];pcap_t*pcap_handle;

constu_char*packet_content;u_char*mac_string;u_shortethernet_type;bpf_u_int32net_mask;bpf_u_int32net_ip;char*net_interface;

structpcap_pkthdrprotocol_header;structbpf_programbpf_filter;

3

structether_header*ethernet_protocol;charbpf_filter_string[]=\

net_interface=pcap_lookupdev(error_content);pcap_lookupnet(net_interface,

pcap_handle=pcap_open_live(net_interface,BUFSIZ,1,0,error_content);pcap_compile(pcap_handle,pcap_setfilter(pcap_handle,if(pcap_datalink(pcap_handle)!=DLT_EN10MB)return;

packet_content=pcap_next(pcap_handle,printf(\printf(\printf(\

printf(\printf(\printf(\

ethernet_protocol=(structether_header*)packet_content;printf(\

ethernet_type=ntohs(ethernet_protocol->ether_type);printf(\switch(ethernet_type){

case0x0800:printf(\case0x0806:printf(\case0x8035:printf(\default:break;}

printf(\

mac_string=ethernet_protocol->ether_shost;

printf(\ing+2),*(mac_string+3),*(mac_string+4),*(mac_string+5));printf(\mac_string=ethernet_protocol->ether_dhost;

printf(\ing+2),*(mac_string+3),*(mac_string+4),*(mac_string+5));pcap_close(pcap_handle);}(4)

structether_header{

4

u_int8_tether_dhost[6];u_int8_tether_shost[6];u_int16_tether_type;};

typedefu_int32_tint_addr_t;structin_addr{

int_addr_ts_addr;};

structarp_header{

u_int16_tarp_hardware_type;u_int16_tarp_protocol_type;u_int8_tarp_hardware_length;u_int8_tarp_protocol_length;u_int16_tarp_operation_code;

u_int8_tarp_source_ethernet_address[6];u_int8_tarp_source_ip_address[4];

u_int8_tarp_destination_ethernet_address[6];u_int8_tarp_destination_ip_address[4];};

voidarp_protocol_packet_callback(u_char*argument,conststructpcap_pkthdr*packet_header,constu_char*packet_content){

structarp_header*arp_protocol;u_shortprotocol_type;u_shorthardware_type;u_shortoperation_code;u_char*mac_string;structin_addrsource_ip_address;

structin_addrdestination_ip_address;u_charhardware_length;u_charprotocol_length;printf(\

arp_protocol=(structarp_header*)(packet_content+14);hardware_type=ntohs(arp_protocol->arp_hardware_type);protocol_type=ntohs(arp_protocol->arp_protocol_type);operation_code=ntohs(arp_protocol->arp_operation_code);hardware_length=arp_protocol->arp_hardware_length;protocol_length=arp_protocol->arp_protocol_length;printf(\printf(\printf(\printf(\

5

printf(\switch(operation_code){

case1:printf(\case2:printf(\case3:printf(\case4:printf(\default:break;}

printf(\

mac_string=arp_protocol->arp_source_ethernet_address;

printf(\ing+2),*(mac_string+3),*(mac_string+4),*(mac_string+5));memcpy((void*)printf(\printf(\

mac_string=arp_protocol->arp_destination_ethernet_address;

printf(\(mac_string+2),*(mac_string+3),*(mac_string+4),*(mac_string+5));memcpy((void*)

printf(\}voidethernet_protocol_packet_callback(u_char*argument,conststructpcap_pkthdr*packet_header,constu_char*packet_content){

u_shortethernet_type;

structether_header*ethernet_protocol;u_char*mac_string;staticintpacket_number=1;

printf(\printf(\

ethernet_protocol=(structether_header*)packet_content;

printf(\

ethernet_type=ntohs(ethernet_protocol->ether_type);printf(\switch(ethernet_type){

case0x0800:printf(\case0x0806:printf(\case0x8035:printf(\

6

default:break;}

printf(\

mac_string=ethernet_protocol->ether_shost;

printf(\(mac_string+2),*(mac_string+3),*(mac_string+4),*(mac_string+5));printf(\mac_string=ethernet_protocol->ether_dhost;

printf(\(mac_string+2),*(mac_string+3),*(mac_string+4),*(mac_string+5));switch(ethernet_type){

case0x0806:arp_protocol_packet_callback(argument,packet_header,packet_content);break;default:break;}

packet_number++;}

intmain(){

pcap_t*pcap_handle;

charerror_content[PCAP_ERRBUF_SIZE];char*net_interface;

structbpf_programbpf_filter;charbpf_filter_string[]=\bpf_u_int32net_mask;bpf_u_int32net_ip;

net_interface=pcap_lookupdev(error_content);

pcap_lookupnet(net_interface,pcap_handle=pcap_open_live(net_interface,BUFSIZ,1,0,error_content);pcap_compile(pcap_handle,pcap_setfilter(pcap_handle,if(pcap_datalink(pcap_handle)!=DLT_EN10MB)return;

pcap_loop(pcap_handle,-1,ethernet_protocol_packet_callback,NULL);pcap_close(pcap_handle);return0;}

2、數(shù)據(jù)結(jié)構(gòu):libpcap

4、總體流程:給出流程圖

7

開啟、讀取設(shè)備,設(shè)置過濾器部分編譯、優(yōu)化、調(diào)試過濾規(guī)則表達(dá)式部分脫機(jī)方式監(jiān)聽部分

本地網(wǎng)絡(luò)設(shè)置檢測部

主控程序及版本部分

關(guān)閉句柄,釋放資源

4、關(guān)鍵算法:給出關(guān)鍵算法描述

(1)charerror_content[PCAP_ERRBUF_SIZE];

structin_addrnet_ip_address;獲得ip地址structin_addrnet_mask_address;獲得子網(wǎng)掩碼char*net_interface;char*net_ip_string;char*net_mask_string;(2)

捕獲一個(gè)數(shù)據(jù)包:

packet_content=pcap_next(pcap_handle,捕獲多個(gè)數(shù)據(jù)包:

pcap_loop(pcap_handle,10,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論