锘??xml version="1.0" encoding="utf-8" standalone="yes"?>国产精品综合久久第一页,欧美日韩成人精品久久久免费看 ,婷婷久久五月天http://www.shnenglu.com/Lee7/category/7089.html 褰撳崕緹庣殑鍙剁墖钀藉敖錛岀敓鍛界殑鑴夌粶鎵嶅巻鍘嗗彲瑙併?錛嶏紞 鑱傞瞾杈? zh-cnSun, 10 May 2009 13:27:31 GMTSun, 10 May 2009 13:27:31 GMT60IOCP綆鍗曞疄鐜頒唬鐮乕杞琞http://www.shnenglu.com/Lee7/archive/2009/05/10/82488.htmlisabcisabcSun, 10 May 2009 08:37:00 GMThttp://www.shnenglu.com/Lee7/archive/2009/05/10/82488.htmlhttp://www.shnenglu.com/Lee7/comments/82488.htmlhttp://www.shnenglu.com/Lee7/archive/2009/05/10/82488.html#Feedback0http://www.shnenglu.com/Lee7/comments/commentRss/82488.htmlhttp://www.shnenglu.com/Lee7/services/trackbacks/82488.html/******************************************************************
*
* Copyright (c) 2008, xxxxx鏈夐檺鍏徃
* All rights reserved.
*
* 鏂囦歡鍚嶇О錛欼OCPHeader.h
* 鎽?nbsp;  瑕侊細(xì) IOCP瀹氫箟鏂囦歡
*
* 褰撳墠鐗堟湰錛?.0
* 浣?nbsp;   鑰咃細(xì)鍚翠細(xì)鐒?br>* 瀹屾垚鏃ユ湡錛?008-9-16
*
* 鍙栦唬鐗堟湰錛?br>* 鍘?nbsp; 浣滆咃細(xì)
* 瀹屾垚鏃ユ湡錛?br>*
*****************************************************************
*/

ifndef _IOCPHEADER_H_20080916_
define _IOCPHEADER_H_20080916_

include 
<WINSOCK2.H>
include 
<windows.h>

define BUFFER_SIZE 
1024

/******************************************************************
* per_handle 鏁版嵁
******************************************************************
*/
typedef 
struct _PER_HANDLE_DATA 
{
    SOCKET      s;      
// 瀵瑰簲鐨勫鎺ュ瓧鍙ユ焺
    sockaddr_in addr;   // 瀵規(guī)柟鐨勫湴鍧
    
}PER_HANDLE_DATA, 
*PPER_HANDLE_DATA;

/******************************************************************
* per_io 鏁版嵁
******************************************************************
*/
typedef 
struct _PER_IO_DATA
{
    OVERLAPPED  ol;                 
// 閲嶅彔緇撴瀯
    char        buf[BUFFER_SIZE];   // 鏁版嵁緙撳啿鍖?/span>
    int         nOperationType;     // 鎿嶄綔綾誨瀷
    
    define OP_READ   
1
        define OP_WRITE  
2
        define OP_ACCEPT 
3
        
}PER_IO_DATA, 
*PPER_IO_DATA;

endif

/******************************************************************
*
* Copyright (c) 2008, xxxxx鏈夐檺鍏徃
* All rights reserved.
*
* 鏂囦歡鍚嶇О錛歮ain.cpp
* 鎽?nbsp;  瑕侊細(xì) iocp demo 
*
* 褰撳墠鐗堟湰錛?.0
* 浣?nbsp;   鑰咃細(xì)鍚翠細(xì)鐒?br>* 瀹屾垚鏃ユ湡錛?008-9-16
*
* 鍙栦唬鐗堟湰錛?br>* 鍘?nbsp; 浣滆咃細(xì)
* 瀹屾垚鏃ユ湡錛?br>*
*****************************************************************
*/

include 
<iostream>
include 
<string>
include 
"IOCPHeader.h"
using namespace std;

DWORD WINAPI ServerThread( LPVOID lpParam );

int main( int argc, char *argv[] )
{
    
//////////////////////////////////////////////////////////////////////////  
    WSADATA wsaData;
    
    
if0 != WSAStartup( MAKEWORD( 22 ), &wsaData ) )
    {
        printf( 
"Using %s (Status:%s)\n", wsaData.szDescription, wsaData.szSystemStatus );
        printf( 
"with API versions: %d.%d to %d.%d"
            LOBYTE( wsaData.wVersion), HIBYTE( wsaData.wVersion ),
            LOBYTE( wsaData.wHighVersion), HIBYTE( wsaData.wHighVersion) );
        
        
return -1;
    }
    
else
    {
        printf(
"Windows sockets 2.2 startup\n");
    }
    
//////////////////////////////////////////////////////////////////////////
    
    
int nPort = 20055;
    
    
// 鍒涘緩瀹屾垚绔彛瀵硅薄
    
// 鍒涘緩宸ヤ綔綰跨▼澶勭悊瀹屾垚绔彛瀵硅薄鐨勪簨浠?/span>
    HANDLE hIocp = ::CreateIoCompletionPort( INVALID_HANDLE_VALUE, 000 );
    ::CreateThread( NULL, 
0, ServerThread, (LPVOID)hIocp, 00 );
    
    
// 鍒涘緩鐩戝惉濂楁帴瀛楋紝緇戝畾鏈湴绔彛錛屽紑濮嬬洃鍚?/span>
    SOCKET sListen = ::socket( AF_INET,
        SOCK_STREAM, 
0 );
    SOCKADDR_IN addr;
    addr.sin_family 
= AF_INET;
    addr.sin_port 
= ::htons( nPort );
    addr.sin_addr.S_un.S_addr 
= INADDR_ANY;
    ::bind( sListen, (sockaddr 
*)&addr, sizeof( addr ) );
    ::listen( sListen, 
5 );
    
    printf( 
"iocp demo start\n" );
    
    
// 寰幆澶勭悊鍒版潵鐨勮姹?/span>
    while ( TRUE )
    {
        
// 絳夊緟鎺ュ彈鏈喅鐨勮繛鎺ヨ姹?/span>
        SOCKADDR_IN saRemote;
        
int nRemoteLen = sizeof( saRemote );
        SOCKET sRemote 
= ::accept( sListen, (sockaddr *)&saRemote, &nRemoteLen );
        
        
// 鎺ュ彈鍒版柊榪炴帴涔嬪悗錛屼負(fù)瀹冨垱寤轟竴涓猵er_handle鏁版嵁錛屽茍灝嗕粬浠叧鑱斿埌瀹屾垚绔彛瀵硅薄
        PPER_HANDLE_DATA pPerHandle = ( PPER_HANDLE_DATA )::GlobalAlloc( GPTR, sizeof( PPER_HANDLE_DATA ) );
        
if( pPerHandle == NULL )
        {
            
break;
        }
        
        pPerHandle
->= sRemote;
        memcpy( 
&pPerHandle->addr, &saRemote, nRemoteLen );
        
        ::CreateIoCompletionPort( ( HANDLE)pPerHandle
->s, hIocp, (DWORD)pPerHandle, 0 );
        
        
// 鎶曢掍竴涓帴鍙楄姹?/span>
        PPER_IO_DATA pIoData = ( PPER_IO_DATA )::GlobalAlloc( GPTR, sizeof( PPER_IO_DATA ) );
        
if( pIoData == NULL )
        {
            
break;
        }
        
        pIoData
->nOperationType = OP_READ;
        WSABUF buf;
        buf.buf 
= pIoData->buf;
        buf.len 
= BUFFER_SIZE;
        
        DWORD dwRecv 
= 0;
        DWORD dwFlags 
= 0;
        
        ::WSARecv( pPerHandle
->s, &buf, 1&dwRecv, &dwFlags, &pIoData->ol, NULL );
        
    }
    
    
//////////////////////////////////////////////////////////////////////////
ERROR_PROC:
    WSACleanup();
    
//////////////////////////////////////////////////////////////////////////
    
    
return 0;
}

/******************************************************************
* 鍑芥暟浠嬬粛錛氬鐞嗗畬鎴愮鍙e璞′簨浠剁殑綰跨▼
* 杈撳叆鍙傛暟錛?br>* 杈撳嚭鍙傛暟錛?br>* 榪斿洖鍊?nbsp; 錛?br>******************************************************************
*/
DWORD WINAPI ServerThread( LPVOID lpParam )
{
    HANDLE hIocp 
= ( HANDLE )lpParam;
    
if( hIocp == NULL )
    {
        
return -1;
    }
    
    DWORD dwTrans 
= 0;
    PPER_HANDLE_DATA pPerHandle;
    PPER_IO_DATA     pPerIo;
    
    
while( TRUE )
    {
        
// 鍦ㄥ叧鑱斿埌姝ゅ畬鎴愮鍙g殑鎵鏈夊鎺ュ瓧涓婄瓑寰匢/O瀹屾垚
        BOOL bRet = ::GetQueuedCompletionStatus( hIocp, &dwTrans, (LPDWORD)&pPerHandle, (LPOVERLAPPED*)&pPerIo, WSA_INFINITE );
        
if!bRet )     // 鍙戠敓閿欒
        {
            ::closesocket( pPerHandle
->s );
            ::GlobalFree( pPerHandle );
            ::GlobalFree( pPerIo );
            
            cout 
<< "error" << endl;
            
continue;
        }
        
        
// 濂楁帴瀛楄瀵規(guī)柟鍏抽棴
        if( dwTrans == 0 && ( pPerIo->nOperationType == OP_READ || pPerIo->nOperationType&nb  sp;== OP_WRITE ) )
        {
            ::closesocket( pPerHandle
->s );
            ::GlobalFree( pPerHandle );
            ::GlobalFree( pPerIo );
            
            cout 
<< "client closed" << endl;
            
continue;
        }
        
        
switch ( pPerIo->nOperationType )
        {
        
case OP_READ:       // 瀹屾垚涓涓帴鏀惰姹?/span>
            {
                pPerIo
->buf[dwTrans] = '\0';
                printf( 
"%s\n", pPerIo->buf );
                
                
// 緇х畫(huà)鎶曢掓帴鍙楁搷浣?/span>
                WSABUF buf;
                buf.buf 
= pPerIo->buf;
                buf.len 
= BUFFER_SIZE;
                pPerIo
->nOperationType = OP_READ;
                
                DWORD dwRecv 
= 0;
                DWORD dwFlags 
= 0;
                
                ::WSARecv( pPerHandle
->s, &buf, 1&dwRecv, &dwFlags, &pPerIo->ol, NULL );
                
            }
            
break;
        
case OP_WRITE:
        
case OP_ACCEPT:
            
break;
            
        }
        
    }
    
    
return 0;
}



isabc 2009-05-10 16:37 鍙戣〃璇勮
]]>
鐢ㄥ崗璁垎鏋愬伐鍏峰涔?fàn)TCP/IPhttp://www.shnenglu.com/Lee7/archive/2008/10/13/63887.htmlisabcisabcMon, 13 Oct 2008 06:26:00 GMThttp://www.shnenglu.com/Lee7/archive/2008/10/13/63887.htmlhttp://www.shnenglu.com/Lee7/comments/63887.htmlhttp://www.shnenglu.com/Lee7/archive/2008/10/13/63887.html#Feedback1http://www.shnenglu.com/Lee7/comments/commentRss/63887.htmlhttp://www.shnenglu.com/Lee7/services/trackbacks/63887.html闃呰鍏ㄦ枃

isabc 2008-10-13 14:26 鍙戣〃璇勮
]]>
ADO涔婥ommand瀵硅薄鍏ㄨВ[杞琞http://www.shnenglu.com/Lee7/archive/2008/06/10/52809.htmlisabcisabcTue, 10 Jun 2008 14:54:00 GMThttp://www.shnenglu.com/Lee7/archive/2008/06/10/52809.htmlhttp://www.shnenglu.com/Lee7/comments/52809.htmlhttp://www.shnenglu.com/Lee7/archive/2008/06/10/52809.html#Feedback0http://www.shnenglu.com/Lee7/comments/commentRss/52809.htmlhttp://www.shnenglu.com/Lee7/services/trackbacks/52809.html闃呰鍏ㄦ枃

isabc 2008-06-10 22:54 鍙戣〃璇勮
]]>
ARP鍗忚璇﹁В鍙?qiáng)濡備綍缂柦E嬪疄鐜癆RP鏀誨嚮[杞琞http://www.shnenglu.com/Lee7/archive/2008/05/23/50835.htmlisabcisabcFri, 23 May 2008 02:35:00 GMThttp://www.shnenglu.com/Lee7/archive/2008/05/23/50835.htmlhttp://www.shnenglu.com/Lee7/comments/50835.htmlhttp://www.shnenglu.com/Lee7/archive/2008/05/23/50835.html#Feedback0http://www.shnenglu.com/Lee7/comments/commentRss/50835.htmlhttp://www.shnenglu.com/Lee7/services/trackbacks/50835.html闃呰鍏ㄦ枃

isabc 2008-05-23 10:35 鍙戣〃璇勮
]]>
TCP/IP 鍗忚鐨勭粨鏋勪笌榪愯鍘熺悊[鍥綸http://www.shnenglu.com/Lee7/archive/2008/05/19/50449.htmlisabcisabcMon, 19 May 2008 15:18:00 GMThttp://www.shnenglu.com/Lee7/archive/2008/05/19/50449.htmlhttp://www.shnenglu.com/Lee7/comments/50449.htmlhttp://www.shnenglu.com/Lee7/archive/2008/05/19/50449.html#Feedback3http://www.shnenglu.com/Lee7/comments/commentRss/50449.htmlhttp://www.shnenglu.com/Lee7/services/trackbacks/50449.html  闃呰鍏ㄦ枃

isabc 2008-05-19 23:18 鍙戣〃璇勮
]]>
TCP澶寸粨鏋?http://www.shnenglu.com/Lee7/archive/2008/05/19/50448.htmlisabcisabcMon, 19 May 2008 15:09:00 GMThttp://www.shnenglu.com/Lee7/archive/2008/05/19/50448.htmlhttp://www.shnenglu.com/Lee7/comments/50448.htmlhttp://www.shnenglu.com/Lee7/archive/2008/05/19/50448.html#Feedback1http://www.shnenglu.com/Lee7/comments/commentRss/50448.htmlhttp://www.shnenglu.com/Lee7/services/trackbacks/50448.html
TCP澶寸粨鏋?
   TCP鍗忚澶存渶灝?0涓瓧鑺傦紝鍖呮嫭浠ヤ笅鐨勫尯鍩燂紙鐢變簬緲昏瘧涓嶇鐩稿悓錛屾枃绔犱腑緇欏嚭鐩稿簲鐨勮嫳鏂囧崟璇嶏級(jí)錛?
   TCP婧愮鍙?Source Port)錛?6浣嶇殑婧愮鍙e叾涓寘鍚垵濮嬪寲閫氫俊鐨勭鍙c傛簮绔彛鍜屾簮IP鍦板潃鐨勪綔鐢ㄦ槸鏍囩ず鎶ラ棶鐨勮繑鍥炲湴鍧銆?
   TCP鐩殑绔彛(Destination port)錛?6浣嶇殑鐩殑绔彛鍩熷畾涔変紶杈撶殑鐩殑銆傝繖涓鍙f寚鏄庢姤鏂囨帴鏀惰綆楁満涓婄殑搴旂敤紼嬪簭鍦板潃鎺ュ彛銆?
   TCP搴忓垪鍙鳳紙搴忓垪鐮?Sequence銆Number錛夛細(xì)32浣嶇殑搴忓垪鍙風(fēng)敱鎺ユ敹绔綆楁満浣跨敤錛岄噸鏂板垎孌電殑鎶ユ枃鎴愭渶鍒濆艦寮忋傚綋SYN鍑虹幇錛屽簭鍒楃爜瀹為檯涓婃槸鍒濆搴忓垪鐮侊紙ISN錛夛紝鑰岀涓涓暟鎹瓧鑺傛槸ISN+1銆傝繖涓簭鍒楀彿錛堝簭鍒楃爜錛夋槸鍙互琛ュ伩浼犺緭涓殑涓嶄竴鑷淬?
   TCP搴旂瓟鍙?Acknowledgment   Number)錛?2浣嶇殑搴忓垪鍙風(fēng)敱鎺ユ敹绔綆楁満浣跨敤錛岄噸緇勫垎孌電殑鎶ユ枃鎴愭渶鍒濆艦寮忋傦紝濡傛灉璁劇疆浜?jiǎn)ACK鎺у埗浣嶏紝榪欎釜鍊艱〃紺轟竴涓噯澶囨帴鏀剁殑鍖呯殑搴忓垪鐮併?
   鏁版嵁鍋忕Щ閲?HLEN)錛?浣嶅寘鎷琓CP澶村ぇ灝忥紝鎸囩ず浣曞鏁版嵁寮濮嬨?
   淇濈暀(Reserved)錛?浣嶅煎煙錛岃繖浜涗綅蹇呴』鏄?銆備負(fù)浜?jiǎn)灏嗘潵瀹氫箟鏂扮殑鐢ㄩ旀墍淇濈暀銆?
   鏍囧織(Code Bits)錛?浣嶆爣蹇楀煙銆傝〃紺轟負(fù)錛氱揣鎬ユ爣蹇椼佹湁鎰忎箟鐨勫簲絳旀爣蹇椼佹帹銆侀噸緗繛鎺ユ爣蹇椼佸悓姝ュ簭鍒楀彿鏍囧織銆佸畬鎴愬彂閫佹暟鎹爣蹇椼傛寜鐓ч『搴忔帓鍒楁槸錛歎RG銆丄CK銆丳SH銆丷ST銆丼YN銆丗IN銆?
   紿楀彛(Window)錛?6浣嶏紝鐢ㄦ潵琛ㄧず鎯蟲(chóng)敹鍒扮殑姣忎釜TCP鏁版嵁孌電殑澶у皬銆?
   鏍¢獙浣?Checksum)錛?6浣峊CP澶淬傛簮鏈哄櫒鍩轟簬鏁版嵁鍐呭璁$畻涓涓暟鍊鹼紝鏀朵俊鎭満瑕佷笌婧愭満鍣ㄦ暟鍊?緇撴灉瀹屽叏涓鏍鳳紝浠庤岃瘉鏄庢暟鎹殑鏈夋晥鎬с?
   浼樺厛鎸囬拡錛堢揣鎬?Urgent  Pointer錛夛細(xì)16浣嶏紝鎸囧悜鍚庨潰鏄紭鍏堟暟鎹殑瀛楄妭錛屽湪URG鏍囧織璁劇疆浜?jiǎn)鏃舵墠鏈夋晥銆傚鏋淯RG鏍囧織娌℃湁琚緗紝绱фュ煙浣滀負(fù)濉厖銆傚姞蹇鐞嗘爣紺轟負(fù)绱фョ殑鏁版嵁孌點(diǎn)?
   閫夐」(Option)錛氶暱搴︿笉瀹氾紝浣嗛暱搴﹀繀欏諱互瀛楄妭銆傚鏋?娌℃湁 閫夐」灝辮〃紺鴻繖涓竴瀛楄妭鐨勫煙絳変簬0銆?
   濉厖錛氫笉瀹氶暱錛屽~鍏呯殑鍐呭蹇呴』涓?錛屽畠鏄負(fù)浜?jiǎn)鏁板鐩殑鑰屽瓨鍦ㄣ傜洰鐨勬槸紜繚絀洪棿鐨勫彲棰勬祴鎬с備繚璇佸寘澶寸殑緇撳悎鍜屾暟鎹殑寮濮嬪鍋忕Щ閲忚兘澶熻32鏁撮櫎錛屼竴鑸澶栫殑闆朵互淇濊瘉TCP澶存槸32浣嶇殑鏁存暟鍊嶃?br>錛滈檮鍥炬槸鐢⊿NIFFER鎶撶殑涓涓寘澶寸粨鏋勶紴

        00 50 07 45 9b d6 43        3c 47 fd 37 50 50 18
        ff 1f 05 a5 00 00 48         54 54 50 2f 31 2e 31
        20 32 30 30 20 4f 4b         0d 0a 53 65 72 76 65
        72 3a 20 4d 69 63 72         6f 73 6f 66 74 2d 49
        49 53 2f 35 2e 30 0d         0a 44 61 74 65 3a 20
        57 65 64 2c 20 31 32         20 4e 6f 76 20 32 30
        30 33 20 30 33 3a 33         37 3a 35 35 20 47 4d
        54 0d 0a 43 6f 6e 6e         65 63 74 69 6f 6e 3a
        20 63 6c 6f 73 65 0d         0a 48 54 54 50 2f 31
        2e 31 20 32 30 30 20         4f 4b 0d 0a 53 65 72
        76 65 72 3a 20 4d 69         63 72 6f 73 6f 66 74
        2d 49 49 53 2f 35 2e         30 0d 0a 50 72 61 67
        6d 61 3a 20 6e 6f 2d         63 61 63 68 65 0d 0a
        43 6f 6e 74 65 6e 74         2d 74 79 70 65 3a 20
        74 65 78 74 2f 70 6c         61 69 6e 3b 63 68 61
        72 73 65 74 3d 67 62         32 33 31 32 0d 0a 0d
        0a

瑙f瀽錛?br>婧愮鍙o細(xì)00銆50銆銆銆銆鐩殑绔彛錛?7銆45銆銆搴忓垪鍙鳳細(xì)9b d6 43銆3c
搴旂瓟鍙鳳細(xì)47 fd 37 50銆  鏁版嵁鍋忕Щ閲忥細(xì)50銆銆銆淇濈暀錛?br>鏍囧織浣嶏細(xì)18銆銆銆銆銆銆銆紿楀彛錛歠f銆1f             鏍¢獙浣嶏細(xì)05 a5
浼樺厛鎸囬拡錛?0銆00銆銆銆銆閫夐」錛氥銆銆銆銆銆銆濉厖錛氾紙浣欎笅鐨?05瀛楄妭涓篢CP鏁版嵁錛?br>
      鏍囧織鎺у埗鍔熻兘 URG錛氱揣鎬ユ爣蹇?
      绱ф?The urgent pointer) 鏍囧織鏈夋晥銆傜揣鎬ユ爣蹇楃疆浣嶏紝
    ACK錛氱‘璁ゆ爣蹇?紜緙栧彿(Acknowledgement  Number)鏍忔湁鏁堛傚ぇ澶氭暟鎯呭喌涓嬭鏍囧織浣嶆槸緗綅鐨勩俆CP鎶ュご鍐呯殑紜緙栧彿鏍忓唴鍖呭惈鐨勭‘璁ょ紪鍙?w+1錛孎igure錛?)涓轟笅涓涓鏈熺殑搴忓垪緙栧彿錛屽悓鏃舵彁紺鴻繙绔郴緇熷凡緇忔垚鍔熸帴鏀舵墍鏈夋暟鎹?
銆銆PSH錛氭帹鏍囧織
      璇ユ爣蹇楃疆浣嶆椂錛屾帴鏀剁涓嶅皢璇ユ暟鎹繘琛岄槦鍒楀鐞嗭紝鑰屾槸灝藉彲鑳藉揩灝嗘暟鎹漿鐢卞簲鐢ㄥ鐞嗐傚湪澶勭悊 telnet 鎴?rlogin 絳変氦浜掓ā寮忕殑榪炴帴鏃訛紝璇ユ爣蹇楁繪槸緗綅鐨勩?
    RST錛氬浣嶆爣蹇?澶嶄綅鏍囧織鏈夋晥銆傜敤浜庡浣嶇浉搴旂殑TCP榪炴帴銆?
    SYN錛氬悓姝ユ爣蹇?鍚屾搴忓垪緙栧彿(Synchronize Sequence Numbers)鏍忔湁鏁堛傝鏍囧織浠呭湪涓夋鎻℃墜寤虹珛TCP榪炴帴鏃舵湁鏁堛傚畠鎻愮ずTCP榪炴帴鐨勬湇鍔$媯(gè)鏌ュ簭鍒楃紪鍙鳳紝璇ュ簭鍒楃紪鍙蜂負(fù)TCP榪炴帴鍒濆绔?涓鑸槸瀹㈡埛绔?鐨勫垵濮嬪簭鍒楃紪鍙楓傚湪榪欓噷錛屽彲浠ユ妸TCP搴忓垪緙栧彿鐪嬩綔鏄竴涓寖鍥翠粠0鍒?錛?94錛?67錛?95鐨?2浣嶈鏁板櫒銆傞氳繃TCP榪炴帴浜ゆ崲鐨勬暟鎹腑姣忎竴涓瓧鑺傞兘緇忚繃搴忓垪緙栧彿銆傚湪TCP鎶ュご涓殑搴忓垪緙栧彿鏍忓寘鎷簡(jiǎn)TCP鍒嗘涓涓涓瓧鑺傜殑搴忓垪緙栧彿銆?
銆銆FIN錛氱粨鏉熸爣蹇?
  銆銆甯︽湁璇ユ爣蹇楃疆浣嶇殑鏁版嵁鍖呯敤鏉ョ粨鏉熶竴涓猅CP鍥炶瘽錛屼絾瀵瑰簲绔彛浠嶅浜庡紑鏀劇姸鎬侊紝鍑嗗鎺ユ敹鍚庣畫(huà)鏁版嵁銆傛湇鍔$澶勪簬鐩戝惉鐘舵侊紝瀹㈡埛绔敤浜庡緩绔嬭繛鎺ヨ姹傜殑鏁版嵁鍖?IP packet)鎸夌収TCP/IP鍗忚鍫嗘爤緇勫悎鎴愪負(fù)TCP澶勭悊鐨勫垎孌?segment)銆?
    鍒嗘瀽鎶ュご淇℃伅錛?TCP灞傛帴鏀跺埌鐩稿簲鐨凾CP鍜孖P鎶ュご錛屽皢榪欎簺淇℃伅瀛樺偍鍒板唴瀛樹(shù)腑銆?
    媯(gè)鏌CP鏍¢獙鍜?checksum)錛氭爣鍑嗙殑鏍¢獙鍜屼綅浜庡垎孌典箣涓?Figure錛?)銆傚鏋滄楠屽け璐ワ紝涓嶈繑鍥炵‘璁わ紝璇ュ垎孌典涪寮冿紝騫剁瓑寰呭鎴風(fēng)榪涜閲嶄紶銆?
銆銆鏌ユ壘鍗忚鎺у埗鍧?PCB{})錛歍CP鏌ユ壘涓庤榪炴帴鐩稿叧鑱旂殑鍗忚鎺у埗鍧椼傚鏋滄病鏈夋壘鍒幫紝TCP灝嗚鍒嗘涓㈠純騫惰繑鍥濺ST銆?榪欏氨鏄疶CP澶勭悊娌℃湁绔彛鐩戝惉鎯呭喌涓嬬殑鏈哄埗)
       濡傛灉璇ュ崗璁帶鍒跺潡瀛樺湪錛屼絾鐘舵佷負(fù)鍏抽棴錛屾湇鍔$涓嶈皟鐢╟onnect()鎴杔isten()銆傝鍒嗘涓㈠純錛屼絾涓嶈繑鍥濺ST銆傚鎴風(fēng)浼?xì)灏濊瘯閲嶆柊寰忕珛杩炴帴璇锋眰銆?
銆銆寤虹珛鏂扮殑socket錛氬綋澶勪簬鐩戝惉鐘舵佺殑socket鏀跺埌璇ュ垎孌墊椂錛屼細(xì)寤虹珛涓涓瓙socket錛屽悓鏃惰繕鏈塻ocket{}錛宼cpcb{}鍜宲ub{}寤虹珛銆傝繖鏃跺鏋滄湁閿欒鍙戠敓錛屼細(xì)閫氳繃鏍囧織浣嶆潵鎷嗛櫎鐩稿簲鐨剆ocket鍜岄噴鏀懼唴瀛橈紝TCP榪炴帴澶辮觸銆傚鏋滅紦瀛橀槦鍒楀浜庡~婊$姸鎬侊紝TCP璁や負(fù)鏈夐敊璇彂鐢燂紝鎵鏈夌殑鍚庣畫(huà)榪炴帴璇鋒眰浼?xì)琚嫆缁濄傝繖閲屽彲浠ョ湅鍑篠YN Flood鏀誨嚮鏄浣曡搗浣滅敤鐨勩?
     涓㈠純錛氬鏋滆鍒嗘涓殑鏍囧織涓篟ST鎴朅CK錛屾垨鑰呮病鏈塖YN鏍囧織錛屽垯璇ュ垎孌典涪寮冦傚茍閲婃斁鐩稿簲鐨勫唴瀛樸?
     鍙戦佸簭鍒楀彉閲?
       SND.UNA 錛?鍙戦佹湭紜
       SND.NXT 錛?鍙戦佷笅涓涓?
       SND.WND 錛?鍙戦佺獥鍙?
       SND.UP 錛?鍙戦佷紭鍏堟寚閽?
       SND.WL1 錛?鐢ㄤ簬鏈鍚庣獥鍙f洿鏂扮殑孌靛簭鍒楀彿
       SND.WL2 錛?鐢ㄤ簬鏈鍚庣獥鍙f洿鏂扮殑孌電‘璁ゅ彿
       ISS 錛?鍒濆鍙戦佸簭鍒楀彿
銆   鎺ユ敹搴忓垪鍙?
       RCV.NXT 錛?鎺ユ敹涓嬩竴涓?
       RCV.WND 錛?鎺ユ敹涓嬩竴涓?
       RCV.UP 錛?鎺ユ敹浼樺厛鎸囬拡
       IRS 錛?鍒濆鎺ユ敹搴忓垪鍙?
     褰撳墠孌靛彉閲?
        SEG.SEQ 錛?孌靛簭鍒楀彿
        SEG.ACK 錛?孌電‘璁ゆ爣璁?
        SEG.LEN 錛?孌甸暱
        SEG.WND 錛?孌電獥鍙?
        SEG.UP 錛?孌電揣鎬ユ寚閽?
        SEG.PRC 錛?孌典紭鍏堢駭
     CLOSED琛ㄧず娌℃湁榪炴帴錛屽悇涓姸鎬佺殑鎰忎箟濡備笅錛?
        LISTEN 錛?鐩戝惉鏉ヨ嚜榪滄柟TCP绔彛鐨勮繛鎺ヨ姹傘?
        SYN-SENT 錛?鍦ㄥ彂閫佽繛鎺ヨ姹傚悗絳夊緟鍖歸厤鐨勮繛鎺ヨ姹傘?
        SYN-RECEIVED 錛?鍦ㄦ敹鍒板拰鍙戦佷竴涓繛鎺ヨ姹傚悗絳夊緟瀵硅繛鎺ヨ姹傜殑紜銆?
        ESTABLISHED 錛?浠h〃涓涓墦寮鐨勮繛鎺ワ紝鏁版嵁鍙互浼犻佺粰鐢ㄦ埛銆?
        FIN-WAIT-1 錛?絳夊緟榪滅▼TCP鐨勮繛鎺ヤ腑鏂姹傦紝鎴栧厛鍓嶇殑榪炴帴涓柇璇鋒眰鐨勭‘璁ゃ?
        FIN-WAIT-2 錛?浠庤繙紼婽CP絳夊緟榪炴帴涓柇璇鋒眰銆?
        CLOSE-WAIT 錛?絳夊緟浠庢湰鍦扮敤鎴峰彂鏉ョ殑榪炴帴涓柇璇鋒眰銆?
        CLOSING 錛?絳夊緟榪滅▼TCP瀵硅繛鎺ヤ腑鏂殑紜銆?
        LAST-ACK 錛?絳夊緟鍘熸潵鍙戝悜榪滅▼TCP鐨勮繛鎺ヤ腑鏂姹傜殑紜銆?
        TIME-WAIT 錛?絳夊緟瓚沖鐨勬椂闂翠互紜繚榪滅▼TCP鎺ユ敹鍒拌繛鎺ヤ腑鏂姹傜殑紜銆?
        CLOSED 錛?娌℃湁浠諱綍榪炴帴鐘舵併?
        TCP榪炴帴榪囩▼鏄姸鎬佺殑杞崲錛屼績(jī)浣垮彂鐢熺姸鎬佽漿鎹㈢殑鏄敤鎴瘋皟鐢細(xì)OPEN錛孲END錛孯ECEIVE錛孋LOSE錛孉BORT鍜孲TATUS銆備紶閫佽繃鏉ョ殑鏁版嵁孌碉紝鐗瑰埆閭d簺鍖呮嫭浠ヤ笅鏍囪鐨勬暟鎹SYN錛孉CK錛孯ST鍜孎IN銆傝繕鏈夎秴鏃訛紝涓婇潰鎵璇寸殑閮戒細(xì)鏃禩CP鐘舵佸彂鐢熷彉鍖栥?
銆  搴忓垪鍙鳳細(xì)璇鋒敞鎰忥紝鎴戜滑鍦═CP榪炴帴涓彂閫佺殑瀛楄妭閮芥湁涓涓簭鍒楀彿銆傚洜涓虹紪浜?jiǎn)鍙峰Q屾墍浠ュ彲浠ョ‘璁ゅ畠浠殑鏀跺埌銆傚搴忓垪鍙風(fēng)殑紜鏄瘡縐х殑銆俆CP蹇呴』榪涜鐨勫簭鍒楀彿姣旇緝鎿嶄綔縐嶇被鍖呮嫭浠ヤ笅鍑犵錛?
銆     鈶犲喅瀹氫竴浜涘彂閫佷簡(jiǎn)鐨勪絾鏈‘璁ょ殑搴忓垪鍙楓?
  銆   鈶″喅瀹氭墍鏈夌殑搴忓垪鍙烽兘宸茬粡鏀跺埌浜?jiǎn)銆?
       鈶㈠喅瀹氫笅涓涓涓簲璇ュ寘鎷殑搴忓垪鍙楓?
     瀵逛簬鍙戦佺殑鏁版嵁TCP瑕佹帴鏀剁‘璁わ紝紜鏃跺繀欏昏繘琛岀殑錛?
        SND.UNA = 鏈鑰佺殑紜浜?jiǎn)鐨勫簭鍒楀彈鱻?
        SND.NXT = 涓嬩竴涓鍙戦佺殑搴忓垪鍙楓?
        SEG.ACK = 鎺ユ敹TCP鐨勭‘璁わ紝鎺ユ敹TCP鏈熷緟鐨勪笅涓涓簭鍒楀彿銆?
        SEG.SEQ = 涓涓暟鎹鐨勭涓涓簭鍒楀彿銆?
        SEG.LEN = 鏁版嵁孌典腑鍖呮嫭鐨勫瓧鑺傛暟銆?
        SEG.SEQ+SEG.LEN-1 = 鏁版嵁孌電殑鏈鍚庝竴涓簭鍒楀彿銆?
     濡傛灉涓涓暟鎹鐨勫簭鍒楀彿灝忎簬絳変簬紜鍙風(fēng)殑鍊鹼紝閭d箞鏁翠釜鏁版嵁孌靛氨琚‘璁や簡(jiǎn)銆傝屽湪鎺ユ敹鏁版嵁鏃朵笅闈㈢殑姣旇緝鎿嶄綔鏄繀欏葷殑錛?
        RCV.NXT = 鏈熷緟鐨勫簭鍒楀彿鍜屾帴鏀剁獥鍙g殑鏈浣庢部銆?
        RCV.NXT+RCV.WND錛? = 鏈鍚庝竴涓簭鍒楀彿鍜屾帴鏀剁獥鍙g殑鏈楂樻部銆?
        SEG.SEQ = 鎺ユ敹鍒扮殑絎竴涓簭鍒楀彿銆?
        SEG.SEQ+SEG.LEN錛? = 鎺ユ敹鍒扮殑鏈鍚庝竴涓簭鍒楀彿



isabc 2008-05-19 23:09 鍙戣〃璇勮
]]>
璁╀綘鐪熸浜?jiǎn)瑙e眬鍩熺綉鎶鏈榪癧杞琞http://www.shnenglu.com/Lee7/archive/2008/05/19/50431.htmlisabcisabcMon, 19 May 2008 13:27:00 GMThttp://www.shnenglu.com/Lee7/archive/2008/05/19/50431.htmlhttp://www.shnenglu.com/Lee7/comments/50431.htmlhttp://www.shnenglu.com/Lee7/archive/2008/05/19/50431.html#Feedback0http://www.shnenglu.com/Lee7/comments/commentRss/50431.htmlhttp://www.shnenglu.com/Lee7/services/trackbacks/50431.html銆銆
銆銆鏈妭灝嗚璁?灞鍩熺綉"鍜?浠ュお緗?浜岃呬箣闂寸殑鍏崇郴浠ュ強(qiáng)鐩稿叧鐨勪竴浜涘熀紜鐭ヨ瘑銆?
  闃呰鍏ㄦ枃

isabc 2008-05-19 21:27 鍙戣〃璇勮
]]>
瀹炰緥錛╋及銆錛碉激錛板ご緇撴瀯http://www.shnenglu.com/Lee7/archive/2008/05/16/50052.htmlisabcisabcFri, 16 May 2008 08:13:00 GMThttp://www.shnenglu.com/Lee7/archive/2008/05/16/50052.htmlhttp://www.shnenglu.com/Lee7/comments/50052.htmlhttp://www.shnenglu.com/Lee7/archive/2008/05/16/50052.html#Feedback6http://www.shnenglu.com/Lee7/comments/commentRss/50052.htmlhttp://www.shnenglu.com/Lee7/services/trackbacks/50052.html 涓浜涘叧浜嶦thernet銆両P 鍜孶DP鍗忚鍚勫垎鏋愯繃浜庢娊璞★紝涓嬮潰榪欐鏁版嵁浣挎垜閫氳繃WinpCap搴撴崟鎹夊埌鐨勬暟鎹紝闆嗗悎涓浜涜祫鏂?鍗忚璧勬枡杞澆鎴戠殑BLOG涓紝鍙互鎼滅儲(chǔ)鍜屾煡闃?鍒嗘瀽鎴戞崟鎹夋暟鎹殑姝g‘鎬э紝鍚屾椂瀹炰緥鍒嗘瀽榪欎簺鍗忚錛佹棩鍚庤繕灝嗗疄渚嬪寲鍒嗘瀽Ethernet銆両P 鍜孴CP鍗忚銆?nbsp; 闃呰鍏ㄦ枃

isabc 2008-05-16 16:13 鍙戣〃璇勮
]]>
久久99精品国产99久久6| 久久国产AVJUST麻豆| 久久国产高清一区二区三区| 久久久久99精品成人片牛牛影视| 午夜福利91久久福利| 丰满少妇人妻久久久久久| 国产精品永久久久久久久久久 | 91精品国产91久久| 久久影院久久香蕉国产线看观看| 亚洲欧美日韩中文久久| 99久久99久久精品国产片| 久久人妻AV中文字幕| 91精品婷婷国产综合久久| 精产国品久久一二三产区区别| 亚洲国产成人久久精品动漫| 亚洲中文字幕久久精品无码喷水| 国产精品伊人久久伊人电影| 国产精品久久国产精品99盘 | 久久精品国产色蜜蜜麻豆| 一本伊大人香蕉久久网手机| 久久AV高潮AV无码AV| 久久亚洲国产精品123区| 99久久精品国产免看国产一区| 国产一区二区久久久| 久久国产成人午夜AV影院| 国产美女久久久| 久久亚洲欧美国产精品| 亚洲精品无码久久久影院相关影片| 久久99精品国产麻豆婷婷| 亚洲国产精品一区二区久久| 亚洲中文字幕无码久久2020| 国产精品中文久久久久久久| 久久久精品日本一区二区三区 | 777米奇久久最新地址| 久久人人爽人人爽人人片av高请 | 午夜精品久久久久久| 久久婷婷人人澡人人| 久久综合日本熟妇| 欧美日韩中文字幕久久久不卡| 久久人人爽人人精品视频| 久久夜色撩人精品国产|