Windows網路程式設計總結(二)

2021-05-01 01:18:55 字數 1696 閱讀 9060

windows網路程式設計總結(二)

1.

winsokcet architecture

2.

關於

acceptex

使用此函式時,要包含頭文:

mswsock.h

mswsock.lib

。可在源程式中加入下面的語句,這樣在編譯時,將自動鏈結

mswsock.lib。

#pragma comment(lib,」 mswsock.lib」)

下面是使用

acceptex

函式的示例**:

#define strict

#define _win32_winnt 0x0500  // windows 2000 or later

#define win32_lean_and_mean

#include

#include

#include

#pragma comment(lib,"ws2_32.lib")

#pragma comment(lib,"mswsock.lib")

int main()

需要注意的是,通過

wsaioctl

獲取acceptex

函式指標時,只需要傳遞給

wsaioctl

乙個有效的

socket

即可,該

socket

的型別不會影響獲取的

acceptex

函式指標。

如果不希望

acceptex

建立連線後等待使用者傳送資料,那麼必須將第四個引數設為0。第

5、6引數必須是對應

socket

的位址型別的大小再加上

16個位元組。

為了使伺服器能較好的處理使用者連線請求,可採取如下兩種策略: a.

設定兩個界限值,使系統未處理的

accept

操作保持在乙個固定水平。推薦上限為10;

b.通過wsaeventselect

函式監聽

listensocket

上的fd_accept

事件。

當關閉完成埠時,如果還有未處理的

accepte

操作,應該先關閉

listensocket

,然後在

iocp

中,處理這些

accept

操作(進行資源釋放等),切記不要強行終止那些沒有處理的

accept

操作,否則會造成記憶體洩漏。

為防止惡意使用者(建立連線後,不傳送資料),可設定

listensocket

的so_connect_time

屬性。

如果希望

clientsocket

具有和listensocket

相同的屬性,需要對

clientsocket

呼叫so_update_accept_context。

作者blog:http://blog.csdn.net/kendiv/

windows網路程式設計 階段總結 1

幾天以來已經完成了乙個比較高的乙個樓梯,感覺豁然,可以有個階段的總結。下乙個階段將進入winsock的學習,這將給學習帶來實果。對於前階段,主要是熟悉幾個函式,熟悉pipe和mailslot的應用,是乙個基礎,但是沒有非常的仔細的讀過來,我想以後可以買到這樣一本書就可以仔細的研讀。對於讀這樣的一本書...

Windows網路程式設計

1.先總結一些會用到的知識 中計算機都分配乙個位址,該位址是乙個 32位的數值表示 客戶端和伺服器通訊的時候需要指定乙個 ip位址 和埠。ip位址 一般是用 internet標準 點分表示法 像a.b.c.d 一樣指定 的,每乙個字母代表乙個位元組的數字 十進位制 八進位制 或十六進製制 從左到右分...

windows網路程式設計

winsock是windows系統下利用socket套接字進行網路程式設計的相關函式,是windows下的網路程式設計介面。winsock在常見的windows平台上有兩個主要的版本,即winsock1和winsock2。編寫與winsock1相容的程式你需要引用標頭檔案winsock.h,如果編寫...