原创 WSARecv參數lpNumberOfBytesRecvd的一個變態問題
這個函數幹嘛的我就不多說了,搞winsock編程的都認識它!我在使用這個函數時,按照MSDN上的描述,將lpNumberOfBytesRecvd設定成了NULL,因爲咱是IOCP嘛,照MSDN的說法,如果LPWSAOVERLAPPED不
原创 關於阻塞和非阻塞模式的socket
我們那最常用的send和recv兩個函數來說吧... 比 如你調用send函數發送一定的Byte,在系統內部send做的工作其實只是把數據傳輸(Copy)到TCP/IP協議棧的輸出緩衝區,它執行成功並不 代表數據已經成功的發送出去了,如果
原创 SOL_SOCKET、IPPROTO_IP、IPPROTO_TCP和NSPROTO_IPX選項級別
int PASCAL setsockopt ( __in SOCKET s,/*套接字*/ __in int level, /*選項級別*/ __in int optname,/* 選項級別*/ __in const char *
原创 關於setsocketopt函數
1. 每個套接口都有一個發送緩衝區和一個接收緩衝區。 接收緩衝區被TCP和UDP用來將接收到的數據一直保存到由應用進程來 讀。 TCP:TCP通告另一端的窗口大小。 TCP套接口接收緩衝區不可能溢出,因爲對
原创 Unicode漢字編碼表
Unicode漢字編碼表 1 unicode編碼表 UNICODE只有一個字符集,中、日、韓的三種文字佔用了Unicode中0x3000到0x9FFF的部分 Unicode目前普遍採用的是UCS-2,它用兩個字節來編碼一
原创 Overlapped I/O模型深入分析
簡述: Overlapped I/O也稱Asynchronous I/O,異步I/O模型。異步I/O和同步I/O不同,同步I/O時,程序被掛起,一直到I/O處理完,程序才能獲得控制。異步I/O,調用一個函數告訴 OS,進行I/O
原创 Visual C++線程同步技術
線程同步的方式有: 臨界區 管理事件內核對象 信號量內核對象 互斥內核對象分別介紹如下:使線程同步 在程序中使用多線程時,一般很少有多個線程能在其生命期內進行完全獨立的操作。更多的情況是一些線程進行某些處理操作,而其他的線程必須
原创 異步非阻塞套接字Winsock開發網絡通信程序的經典入門
對於許多初學者來說,網絡通信程序的開發,普遍的一個現象就是覺得難以入手。許多概念,諸如:同步(Sync)/異步(Async),阻塞(Block)/非阻塞(Unblock)等,初學者往往迷惑不清,只知其所以而不知起所以然。 同步方式指的
原创 Socket send函數和recv函數詳解
int send( SOCKET s, const char FAR *buf, int len, int flags ); 不論是客戶還是服務器應用程序都用send函數來向TCP連接的另一端發送數
原创 UDP Socket編程 C/C++實現
//services#pragma comment (lib,"ws2_32.lib") #include <Winsock2.h> #include <stdio.h> void main() {
原创 WinSock主要擴充說明
1、異步選擇機制: Windows Sockets 的異步選擇函數提供了消息機制的網絡事件選擇,當使用它登記網絡事件發生時,應用程序相應窗口函數將收到一個消息,消息中指示了發生的網絡事件,以及與事件相關的一些信息。 Win