原创 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