作業系統與網路 2019 3 25

2021-09-14 06:01:14 字數 3856 閱讀 4417

void cudpnet:

:closenet()

// 解除安裝庫

wsacleanup()

;}

bool cudpnet:

:senddata

(ulong uip,

const

char

* pszsendbuffer,

int nsendlen)

return true;

}

unsigned

int _stdcall cudpnet:

:threadproc

(lpvoid lpvoid)

; sockaddr_in addr_from;

int n_addr_len =

sizeof

(addr_from)

;while

(p_this->m_b_qiut_thread)

}return0;

}

ulong getlocalipaddr()

;// 獲取主機名if(

::gethostname

(sz_name,

100)!=0

)// 該函式需要在載入庫之前

return-1

;// 獲取ip列表

hostent* p_host =::

gethostbyname

(sz_name);if

(p_host ==0)

return-1

;// 取得ip位址

char

* nip = p_host->h_addr_list[0]

; sockaddr_in in;::

memcpy(&

(in.sin_addr.s_un.s_addr)

, nip, p_host->h_length)

;return in.sin_addr.s_un.s_addr;

}

:

initinstance()

return false;

}// *************************=3-22 開啟網路*************************=

//********************==3-25 列印本機ip*************************=

sockaddr_in in;

in.sin_addr.s_un.s_addr = p->

getlocalipaddr()

;trace

("%s\n"

,inet_ntoa

(in.sin_addr));

//********************==3-25 列印本機ip*************************=..

....

}

#pragma once

#include

"net.h"

class imediator

; virtual ~

imediator()

;public:

virtual bool initmediator()

=0; virtual void

clearupmediator()

=0; virtual bool senddata

(ulong uip,

const

char

* pszsendbuffer,

int nsendlen)=0

; virtual bool dealdata

(ulong uip,

char

* pszsendbuffer,

int nsendlen)=0

;};

#pragma once

#include

"mediator.h"

class cudpmediator:public imediator

;

#include

"stdafx.h"

#include

"udpmediator.h"

#include

"udpnet.h"

#include

"../packdef/packdef.h"

cudpmediator:

:cudpmediator()

cudpmediator::~

cudpmediator()

bool cudpmediator:

:initmediator()

void cudpmediator:

:clearupmediator()

bool cudpmediator:

:senddata

(ulong uip,

const

char

* pszsendbuffer,

int nsendlen)

bool cudpmediator:

:dealdata

(ulong uip,

char

* pszsendbuffer,

int nsendlen)

break

;case protocl_online_rs:

break

;case protocl_offline_rq:

break

;case protocl_offline_rs:

break;}

return true;

}

cudpnet:

:cudpnet

(imediator* p_mediator)

unsigned

int _stdcall cudpnet:

:threadproc

(lpvoid lpvoid)

; sockaddr_in addr_from;

int n_addr_len =

sizeof

(addr_from)

;while

(p_this->m_b_qiut_thread)

}return0;

}

cudpmediator:

:cudpmediator()

:(

)// return false;

//}// *************************=3-22 開啟網路*************************=

// *************************=3-25 開啟中介者*************************=

if(false == m_p_mediator->

initmediator()

)return false;

}// *************************=3-25 開啟中介者*************************=

//********************==3-25 列印本機ip*************************=

//sockaddr_in in;

= p->getlocalipaddr();

//trace("%s\n", inet_ntoa(in.sin_addr));

//********************==3-25 列印本機ip*************************=..

....

}

作業系統與網路 2019 1 30

void cmodifymemory firstfind dword nfindvalue 6.完成 findonepage 函式,首先用乙個陣列來儲存查詢到的內容 dword sz buffer 1024 7.讀程序位址空間的內容,讀失敗則返回 if 0 readprocessmemory m h...

作業系統與網路 2019 2 1

1.作用域是通過 來進行區分的 2.全域性變數需要使用 來與區域性變數進行區分 同名情況下 3.命名空間是 ansi c 引入的可以由使用者命名的作用域,用來處理程式中常見的同名衝突 4.當只呼叫標頭檔案而沒有開啟命名空間時,某些函式是無法使用的。1.函式的預設值從右到左 右邊有,左邊無 2.函式的...

作業系統與網路 2019 3 18

int main include using namespace std include pragma comment lib,ws2 32.lib intmain if lobyte wsadata.wversion 2 hibyte wsadata.wversion 2 else printf ...