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 ...