作業系統與網路 2019 3 29

2021-09-14 08:06:08 字數 2517 閱讀 4438

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