bool ciocpnet:
:init()
// **********====1.載入庫**********====
// **********====2.建立套接字**********==
m_socket_listen =::
wsasocket
(af_inet, sock_stream , ipproto_tcp,0,
0;// 建立的socket在執行socket的同時可以執行其他操作
if(m_socket_listen == invalid_socket)
// **********====2.建立套接字**********==
// **********===3.繫結***************
sockaddr_in addr_server;
addr_server.sin_family = af_inet;
addr_server.sin_addr.s_un.s_addr = inaddr_any;
addr_server.sin_port =
htons
(4568);
if(::
bind
(m_socket_listen,
(const sockaddr*
)&addr_server,
sizeof
(sockaddr_in)
)== socket_error)
// **********===3.繫結***************
// ***************4.監聽***************if(
::listen
(m_socket_listen, somaxconn)
== socket_error)
// somaxconn
// ***************4.監聽***************
// ********************==5.獲取系統資訊*************************
system_info si;::
getsysteminfo
(&si)
;// ********************==5.獲取系統資訊*************************
// ***************===建立 完成埠********************====
m_h_iocp =
createiocompletionport
(invalid_handle_value,0,
0,0)
;if(null
== m_h_iocp)
// ***************===建立 完成埠********************====
// ***************===把socket交給 完成埠 去管理***************===
createiocompletionport
((handle)m_socket_listen, m_h_iocp, m_socket_listen,0)
;// ***************===把socket交給 完成埠 去管理***************===
// ********************==6.建立執行緒,個數為 核數x2*************************=
for(size_t i=
0; i2; i++
)// ********************==6.建立執行緒,個數為 核數x2*************************=
return true;
}void ciocpnet:
:close()
if(m_socket_listen !=0)
// 解除安裝庫::
wsacleanup()
;return true;
}unsigned
int _stdcall ciocpnet:
:threadproc
(void
* pvoid)
return0;
}
#define buffer_size 1024
#define port 4567
enum net_event_type
;typedef
;bool ciocpnet:
:init()
// ***************==投遞一定數量的連線請求***************==..
....
return true;
}
bool ciocpnet:
:postaccept()
}// 儲存到鍊錶中
m_ls_ol.
push_back
(p_mol)
;return true;
}
作業系統與網路 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 ...