乙個簡單的IOCP伺服器例項

2021-06-19 07:15:49 字數 1298 閱讀 2185

//

// initsock.h檔案

#include #pragma comment(lib, "ws2_32") // 鏈結到ws2_32.lib

class cinitsock

} ~cinitsock()

};

/

// iocpdemo.cpp檔案 除錯通過

#include "initsock.h"

#include #include // 初始化winsock庫

cinitsock thesock;

#define buffer_size 1024

typedef struct _per_handle_data // per-handle資料

per_handle_data, *pper_handle_data;

typedef struct _per_io_data // per-i/o資料

per_io_data, *pper_io_data;

dword winapi serverthread(lpvoid lpparam)

if(dwtrans == 0 && // 套節字被對方關閉

(pperio->noperationtype == op_read || pperio->noperationtype == op_write))

switch(pperio->noperationtype) // 通過per-i/o資料中的noperationtype域檢視什麼i/o請求完成了

break;

case op_write: // 本例中沒有投遞這些型別的i/o請求

case op_accept:

break;

} }return 0;

}void main()

// 建立監聽套節字,繫結到本地位址,開始監聽

socket slisten = ::socket(af_inet, sock_stream, 0);

sockaddr_in si;

si.sin_family = af_inet;

si.sin_port = ::ntohs(nport);

si.sin_addr.s_un.s_addr = inaddr_any;

::bind(slisten, (sockaddr*)&si, sizeof(si));

::listen(slisten, 5);

// 迴圈處理到來的連線

while(true)

}

乙個簡單的Squid伺服器

本文參考http blog.s135.com book squid chap07.html a13,基本上是一步步照做 一 伺服器主機 centos5.3 159.226.3.209 區域網環境 網路設定 172.16.2.24 閘道器 172.16.2.254 說明 由於區域網所用閘道器已另行設定...

乙個簡單的Http伺服器

計算機網路的課程設計 使用基本的socket編寫的,採用多執行緒處理訪問 寫了 一下午,本來想把php鏈進來,結果之後就不想碰了 環境是 vs2010 主要是兩個類 httpserver 用來建立監聽response 用來響應請求能夠處理get 和 post報文只是因為沒有後台的指令碼語言處理,所以...

乙個簡單的web伺服器

新的一年了,新的開始,打算重新看一遍asp.net本質論這本書,再重新認識一下,查漏補缺,認認真真的過一遍。首先需要引入命名空間 system.net,關於網路程式設計的大部分型別及操作都可以在這個命名空間下找到。system.net.sockets 命名空間中提供了基於socket程式設計的資料型...