亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? net.c

?? 石器時代8.0服務端完整源代碼。可以直接編譯
?? C
?? 第 1 頁 / 共 5 頁
字號:
{    CONNECT_LOCK(fd);    Connect[fd].lastCAsendtime = *t;    CONNECT_UNLOCK(fd);}ANYTHREAD static void CONNECT_getLastCAsendtime( int fd, struct timeval *t ){    CONNECT_LOCK(fd);    *t = Connect[fd].lastCAsendtime;    CONNECT_UNLOCK(fd);}ANYTHREAD static void CONNECT_setLastCDsendtime( int fd, struct timeval *t ){    CONNECT_LOCK(fd);    Connect[fd].lastCDsendtime = *t;    CONNECT_UNLOCK(fd);    }ANYTHREAD static void CONNECT_getLastCDsendtime( int fd, struct timeval *t ){    CONNECT_LOCK(fd);    *t = Connect[fd].lastCDsendtime;    CONNECT_UNLOCK(fd);}ANYTHREAD int CONNECT_getUse_debug( int fd, int i ){    int a;    CONNECT_LOCK_ARG2(fd,i);    a = Connect[fd].use;    CONNECT_UNLOCK_ARG2(fd,i);    return a;    }ANYTHREAD int CONNECT_getUse( int fd ){    int a;    CONNECT_LOCK(fd);    a = Connect[fd].use;    CONNECT_UNLOCK(fd);    return a;}void CONNECT_setUse( int fd , int a)//ANYTHREAD static void CONNECT_setUse( int fd , int a){    CONNECT_LOCK(fd);    Connect[fd].use = a;    CONNECT_UNLOCK(fd);}ANYTHREAD void CONNECT_checkStatecount( int a ){	int i;	int count=0;	for( i=0; i < ConnectLen; i++ ){		if( Connect[i].use == FALSE || Connect[i].state != a ) continue;		if( Connect[i].nstatecount <= 0 ){			Connect[i].nstatecount=(int)time(NULL)+60;		}else{			if( Connect[i].nstatecount < (int)time(NULL) ){				CONNECT_endOne_debug(i);				close( i );				count++;			}		}	}	{		memset(StateTable, 0, sizeof(StateTable));		for (i=0; i < ConnectLen; i++)			if (Connect[i].use == TRUE)				StateTable[Connect[i].state]++;	}}ANYTHREAD int CONNECT_checkStateSomeOne( int a, int maxcount){	char temp[80],buffer[1024];	int i, ret=1;	if( StateTable[a] >= maxcount ) ret =-1;	buffer[0]=0;	for (i=0; i <= WHILESAVEWAIT; i++){		sprintf(temp, "%4d", StateTable[i]);		strcat(buffer, temp);	}	print("\nNOW{{%s}}", buffer);	return ret;}ANYTHREAD void CONNECT_setState( int fd, int a ){    CONNECT_LOCK(fd);    Connect[fd].state = a;	Connect[fd].nstatecount = 0;    // Nuke start 0829: For debugging    {       char temp[80],buffer[1024];       int i;       memset(StateTable, 0, sizeof(StateTable));       for (i=0; i < ConnectLen; i++)          if (Connect[i].use == TRUE)             StateTable[Connect[i].state]++;       buffer[0]=0;       for (i=0; i <= WHILESAVEWAIT; i++){            sprintf(temp, "%4d", StateTable[i]);            strcat(buffer, temp);       }       print("\n{{%s}}", buffer);    }    // Nuke end                                                                                                                                                                CONNECT_UNLOCK(fd);}ANYTHREAD int CONNECT_getState( int fd ){    int a;    CONNECT_LOCK(fd);    a = Connect[fd].state;    CONNECT_UNLOCK(fd);    return a;}ANYTHREAD void CONNECT_incrementErrornum(int fd ){    CONNECT_LOCK(fd);    Connect[fd].errornum ++;    CONNECT_UNLOCK(fd);}ANYTHREAD void CONNECT_setCharaindex( int fd, int a ){    CONNECT_LOCK(fd);    Connect[fd].charaindex = a;    CONNECT_UNLOCK(fd);}ANYTHREAD int CONNECT_getCharaindex( int fd ){    int a;    CONNECT_LOCK(fd);    a = Connect[fd].charaindex;    CONNECT_UNLOCK(fd);    return a;}ANYTHREAD void CONNECT_getCdkey( int fd , char *out, int outlen ){    CONNECT_LOCK(fd);    strcpysafe( out, outlen, Connect[fd].cdkey );    CONNECT_UNLOCK(fd);}ANYTHREAD voidCONNECT_setCdkey( int sockfd, char *cd ){    CONNECT_LOCK(sockfd);    snprintf( Connect[sockfd].cdkey, sizeof( Connect[sockfd].cdkey ),"%s",              cd );    CONNECT_UNLOCK(sockfd);}ANYTHREAD void CONNECT_getPasswd( int fd , char *out, int outlen ){    CONNECT_LOCK(fd);    strcpysafe( out, outlen, Connect[fd].passwd );    CONNECT_UNLOCK(fd);}ANYTHREAD void CONNECT_setPasswd( int fd, char *in ){    CONNECT_LOCK(fd);    strcpysafe( Connect[fd].passwd, sizeof( Connect[fd].passwd ), in );    CONNECT_UNLOCK(fd);}ANYTHREAD int CONNECT_getCtype( int fd ){    int a;    CONNECT_LOCK(fd);    a = Connect[fd].ctype;    CONNECT_UNLOCK(fd);    return a;}ANYTHREAD void CONNECT_setCtype( int fd , int a ){    CONNECT_LOCK(fd);    Connect[fd].ctype = a;    CONNECT_UNLOCK(fd);    }ANYTHREAD void CONNECT_getCharname( int fd , char *out, int outlen ){    CONNECT_LOCK(fd);    strcpysafe( out, outlen, Connect[fd].charname );    CONNECT_UNLOCK(fd);}ANYTHREAD void CONNECT_setCharname( int fd, char *in ){    CONNECT_LOCK(fd);    strcpysafe( Connect[fd].charname, sizeof( Connect[fd].charname ),                in );    CONNECT_UNLOCK(fd);}ANYTHREAD int CONNECT_getFdid( int fd ){    int a;    CONNECT_LOCK(fd);    a = Connect[fd].fdid;    CONNECT_UNLOCK(fd);    return a;}ANYTHREAD void CONNECT_setDuelcharaindex( int fd, int i , int a ){    CONNECT_LOCK(fd);    Connect[fd].duelcharaindex[i]=a;    CONNECT_UNLOCK(fd);    }ANYTHREAD int CONNECT_getDuelcharaindex( int fd, int i ){    int a;    CONNECT_LOCK(fd);    a = Connect[fd].duelcharaindex[i];    CONNECT_UNLOCK(fd);    return a;}ANYTHREAD void CONNECT_setBattlecharaindex( int fd, int i , int a ){    CONNECT_LOCK(fd);    Connect[fd].battlecharaindex[i] = a;    CONNECT_UNLOCK(fd);    }ANYTHREAD int CONNECT_getBattlecharaindex( int fd, int i ){    int a;    CONNECT_LOCK(fd);    a = Connect[fd].battlecharaindex[i];    CONNECT_UNLOCK(fd);    return a;}ANYTHREAD void CONNECT_setJoinpartycharaindex( int fd, int i , int a){    CONNECT_LOCK(fd);    Connect[fd].joinpartycharaindex[i]=a;    CONNECT_UNLOCK(fd);}ANYTHREAD int CONNECT_getJoinpartycharaindex( int fd, int i ){    int a;    CONNECT_LOCK(fd);    a = Connect[fd].joinpartycharaindex[i];    CONNECT_UNLOCK(fd);    return a;}// CoolFish: Trade 2001/4/18ANYTHREAD void CONNECT_setTradecharaindex( int fd, int i , int a ){    CONNECT_LOCK(fd);    Connect[fd].tradecharaindex[i] = a;    CONNECT_UNLOCK(fd);}// Shan BeginANYTHREAD void CONNECT_setLastrecvtime( int fd, struct timeval *a ){    CONNECT_LOCK(fd);    Connect[fd].lastrecvtime = *a;    CONNECT_UNLOCK(fd);}ANYTHREAD void CONNECT_getLastrecvtime( int fd, struct timeval *a ){    CONNECT_LOCK(fd);    *a = Connect[fd].lastrecvtime;    CONNECT_UNLOCK(fd);}ANYTHREAD void CONNECT_setLastrecvtime_D( int fd, struct timeval *a ){    CONNECT_LOCK(fd);    Connect[fd].lastrecvtime_d = *a;    CONNECT_UNLOCK(fd);}ANYTHREAD void CONNECT_getLastrecvtime_D( int fd, struct timeval *a ){    CONNECT_LOCK(fd);    *a = Connect[fd].lastrecvtime_d;    CONNECT_UNLOCK(fd);}// 2001/12/26ANYTHREAD void CONNECT_SetBattleRecvTime( int fd, struct timeval *a ){    CONNECT_LOCK(fd);    Connect[fd].battle_recvtime = *a;    CONNECT_UNLOCK(fd);}ANYTHREAD void CONNECT_GetBattleRecvTime( int fd, struct timeval *a ){    CONNECT_LOCK(fd);    *a = Connect[fd].battle_recvtime;    CONNECT_UNLOCK(fd);}// Shan End#ifdef _ITEM_PILEFORTRADEANYTHREAD void CONNECT_setTradeList( int fd, int num){	Connect[fd].tradelist = num;}ANYTHREAD int CONNECT_getTradeList(int fd){	return Connect[fd].tradelist;}#endifANYTHREAD void CONNECT_setTradeTmp(int fd, char* a){	CONNECT_LOCK(fd);		strcpysafe( Connect[fd].TradeTmp, sizeof(Connect[fd].TradeTmp), a);        CONNECT_UNLOCK(fd);}ANYTHREAD void CONNECT_getTradeTmp(int fd, char *trademsg, int trademsglen){	CONNECT_LOCK(fd);        strcpysafe(trademsg, trademsglen, Connect[fd].TradeTmp);        CONNECT_UNLOCK(fd);}                                            ANYTHREAD void CONNECT_setTradecardcharaindex( int fd, int i , int a ){    CONNECT_LOCK(fd);    Connect[fd].joinpartycharaindex[i] = a;    CONNECT_UNLOCK(fd);}ANYTHREAD int CONNECT_getTradecardcharaindex( int fd, int i ){    int a;    CONNECT_LOCK(fd);    a = Connect[fd].joinpartycharaindex[i];    CONNECT_UNLOCK(fd);    return a;}ANYTHREAD int CONNECT_getClosed( int fd ){#if USE_MTIO        int a;    CONNECT_LOCK(fd);    a = Connect[fd].closed;    CONNECT_UNLOCK(fd);    return a;#else    return 0;#endif}ANYTHREAD void CONNECT_setClosed( int fd, int a ){#if USE_MTIO        CONNECT_LOCK(fd);    if( !Connect[fd].use){        CONNECT_UNLOCK(fd);                    return;    }    Connect[fd].closed =a;    CONNECT_UNLOCK(fd);#endif    }ANYTHREAD void CONNECT_setCloseRequest( int fd, int count ){    CONNECT_LOCK(fd);    Connect[fd].close_request = count;    // Nuke    print("關閉請求設置為 %d ",fd);    CONNECT_UNLOCK(fd);}                       /*------------------------------------------------------------ * CAcheck 卅升卞銀歹木月楮醒[  端卞霜月[ * 婁醒 *  fd      int     白央奶伙犯奴旦弁伉皿正 * 忒曰襖 *  卅仄 ------------------------------------------------------------*/ANYTHREAD void CAsend( int fd ){    char buf[sizeof(Connect[0].CAbuf)];    int bufuse=0;    if( CONNECT_getCAbuf( fd, buf, sizeof(buf), &bufuse ) < 0 )return;    if( bufuse == 0 )return;    //print("\nshan--->(CAsend)->%s fd->%d", buf, fd);    /*    及犯伉立正 ',' 毛'\0' 午井尹月*/    buf[bufuse-1] = '\0';    lssproto_CA_send( fd , buf );    CONNECT_setCAbufsiz( fd, 0 );	}/*------------------------------------------------------------ * CA毛霜月[ * 婁醒 * 忒曰襖 *  卅仄 ------------------------------------------------------------*/ANYTHREAD void CAcheck( void ){    int     i;    unsigned int interval_us = getCAsendinterval_ms()*1000;    /* Connect及蜊醒坌分仃支月井日褐中氏分卅[ */    for( i = 0; i < ConnectLen; i ++) {        struct timeval t;        if( !CONNECT_getUse_debug(i,1008) )continue;        CONNECT_getLastCAsendtime( i, &t );        if( time_diff_us( NowTime, t ) > interval_us ){            CAsend( i);            CONNECT_setLastCAsendtime( i, &NowTime );        }    }}ANYTHREAD void CAflush( int charaindex ){    int i;    i = getfdFromCharaIndex( charaindex);    if( i == -1 )return;    CAsend(i);}/*------------------------------------------------------------ * CDbuf 卞馨笛允月[ * 婁醒 *  fd      int     白央奶伙犯奴旦弁伉皿正 *  data    char*   犯□正 *  size    int     犯□正及扔奶術 * 忒曰襖 *  岳      TRUE(1) *  撩      FALSE(0) ------------------------------------------------------------*/ANYTHREAD BOOL CONNECT_appendCDbuf( int fd , char* data, int size ){    CONNECT_LOCK(fd);    if( ( Connect[fd].CDbufsiz + size ) >= sizeof( Connect[fd].CDbuf )){        CONNECT_UNLOCK(fd);        return FALSE;    }    memcpy( Connect[fd].CDbuf + Connect[fd].CDbufsiz , data, size );    Connect[fd].CDbuf[Connect[fd].CDbufsiz+size] = ',';    Connect[fd].CDbufsiz += ( size + 1 );    CONNECT_UNLOCK(fd);    return TRUE;}/*------------------------------------------------------------ * CDcheck 卅升卞銀歹木月楮醒[  端卞霜月[ * 婁醒 *  fd      int     白央奶伙犯奴旦弁伉皿正 * 忒曰襖 *  卅仄 ------------------------------------------------------------*/ANYTHREAD void CDsend( int fd ){    char buf[sizeof(Connect[0].CAbuf )];    int bufuse=0;    if( CONNECT_getCDbuf( fd, buf, sizeof(buf), &bufuse ) < 0 ) return;    if( bufuse == 0 ) return;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲人成精品久久久久久| 日韩激情一二三区| 日韩不卡一二三区| 国产69精品久久久久777| 在线精品视频免费观看| 欧美精品一区二区三区在线播放| 亚洲精品视频免费观看| 国产激情偷乱视频一区二区三区| 欧美日韩中文另类| 中文字幕一区二区三区色视频 | 91黄色小视频| 中文字幕精品综合| 久久99国产精品麻豆| 精品视频一区三区九区| 最新欧美精品一区二区三区| 久久99国内精品| 这里是久久伊人| 亚洲成人动漫av| aaa亚洲精品| 久久久99精品免费观看不卡| 男男成人高潮片免费网站| 欧洲精品中文字幕| 亚洲精品菠萝久久久久久久| 成人综合在线网站| 欧美激情综合网| 国产精品亚洲专一区二区三区| 日韩午夜激情免费电影| 午夜精品视频在线观看| 欧美体内she精高潮| 一区二区三区中文在线观看| 成人禁用看黄a在线| 国产精品国产精品国产专区不蜜 | 日韩电影在线一区二区三区| 欧美日韩一区高清| 亚洲成人免费在线观看| 欧美老肥妇做.爰bbww| 亚洲国产一区在线观看| 欧美日韩你懂得| 五月婷婷久久综合| 日韩亚洲电影在线| 精品亚洲aⅴ乱码一区二区三区| 日韩午夜在线观看| 精品亚洲国产成人av制服丝袜| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 粗大黑人巨茎大战欧美成人| 国产午夜亚洲精品理论片色戒| 国产精品资源在线看| 欧美极品aⅴ影院| 日本乱码高清不卡字幕| 亚洲不卡在线观看| 欧美mv和日韩mv国产网站| 国产激情视频一区二区三区欧美| 国产精品视频在线看| 一本色道**综合亚洲精品蜜桃冫| 一区二区三区av电影| 欧美一区二区在线不卡| 国产精品一区二区久久不卡| 中文字幕在线一区二区三区| 在线观看免费视频综合| 麻豆91在线观看| 中文字幕一区二区三区不卡 | 成人免费视频国产在线观看| 一区二区三区精品视频| 欧美一二三四区在线| 国产成人午夜电影网| 亚洲午夜在线观看视频在线| 精品日韩欧美在线| 成人av免费网站| 全国精品久久少妇| 国产精品视频免费看| 欧美日韩视频在线观看一区二区三区 | 综合久久久久综合| 欧美一区二区视频在线观看2020| 国产一区91精品张津瑜| 亚洲乱码中文字幕| 精品少妇一区二区三区日产乱码 | 国内精品国产成人国产三级粉色| 日本一区二区三区在线观看| 精品视频免费在线| 成人av资源在线观看| 日本网站在线观看一区二区三区| 中文字幕乱码久久午夜不卡| 欧美乱妇15p| 93久久精品日日躁夜夜躁欧美| 蜜桃久久久久久久| 一区二区日韩av| 久久精品亚洲国产奇米99| 欧美日产在线观看| 欧美日韩国产免费| 国产91清纯白嫩初高中在线观看| 日韩中文欧美在线| 一区二区三区四区五区视频在线观看 | 国产成人亚洲综合a∨婷婷| 亚洲午夜电影在线| 国产精品久久久久影院色老大| 日韩美女一区二区三区四区| 欧美在线观看一二区| 国产91对白在线观看九色| 精品一区二区免费看| 日本午夜一区二区| 亚洲一区二区三区四区中文字幕| 欧美国产日本视频| 国产亚洲一区二区三区四区| 91精品国产91久久综合桃花 | 欧美精品一区二区蜜臀亚洲| 欧美日韩日日摸| 欧美亚洲高清一区| 色婷婷精品大视频在线蜜桃视频| 国产高清一区日本| 激情五月婷婷综合| 亚洲电影第三页| 天天操天天色综合| 亚洲成人资源网| 婷婷久久综合九色综合绿巨人| 亚洲一区二区视频| 亚洲一区二区三区自拍| 亚洲成人av一区二区| 亚洲高清一区二区三区| 五月综合激情网| 日韩电影在线免费看| 日本成人在线视频网站| 男男视频亚洲欧美| 国产一区二区影院| 国产一区二区视频在线播放| 国产剧情一区二区三区| 成人性生交大片| gogo大胆日本视频一区| 91美女片黄在线观看| 在线观看国产91| 91精品国产色综合久久久蜜香臀| 日韩欧美一二三| 26uuu精品一区二区| 欧美精彩视频一区二区三区| 亚洲视频资源在线| 亚洲综合精品自拍| 免费观看在线色综合| 国产毛片精品一区| 99re成人在线| 欧美美女喷水视频| 欧美精品一区二区三区很污很色的| 国产丝袜欧美中文另类| 亚洲美女免费在线| 日韩国产精品久久久| 国产一区高清在线| 91啪亚洲精品| 日韩三级视频在线观看| 国产视频不卡一区| 亚洲综合久久久久| 国产精一区二区三区| 日本丰满少妇一区二区三区| 欧美性猛片aaaaaaa做受| 日韩精品一区二区三区swag| 国产精品久久看| 日韩av一区二区三区四区| 国产精品自在在线| 欧美日韩久久一区| 国产人伦精品一区二区| 亚洲综合在线五月| 国产精品综合一区二区三区| 欧美日韩一级二级| 欧美国产日韩在线观看| 五月天欧美精品| 成人做爰69片免费看网站| 欧美精品一卡二卡| 一区二区中文视频| 精品在线一区二区| 在线精品观看国产| 国产精品网站在线| 激情五月婷婷综合网| 欧美亚洲动漫制服丝袜| 欧美激情在线看| 免费欧美在线视频| 欧美三级在线视频| 中文字幕一区二区三区四区不卡| 久久av老司机精品网站导航| 欧美日韩卡一卡二| 亚洲美女淫视频| 成人免费视频视频在线观看免费| 日韩一区二区三区视频在线| 亚洲综合小说图片| 99r国产精品| 国产日韩成人精品| 国产在线观看一区二区| 欧美一区二区三区四区在线观看| 一区二区三区在线视频免费| 成人性色生活片免费看爆迷你毛片| 欧美成人官网二区| 蜜臀av一区二区在线观看| 欧美日韩国产bt| 亚洲在线视频网站| 在线欧美日韩国产| 亚洲综合色在线| 日本道精品一区二区三区| 亚洲欧洲另类国产综合| av亚洲产国偷v产偷v自拍| 国产日韩影视精品| 国产iv一区二区三区| 国产日韩亚洲欧美综合| 国产美女久久久久| 国产欧美1区2区3区|