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

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

?? linksocket.c

?? openmap java寫的開源數字地圖程序. 用applet實現,可以像google map 那樣放大縮小地圖.
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* ********************************************************************** *  * <copyright> *  *  BBN Technologies, a Verizon Company *  10 Moulton Street *  Cambridge, MA 02138 *  (617) 873-8000 *  *  Copyright (C) BBNT Solutions LLC. All rights reserved. *  * </copyright> * ********************************************************************** *  * $Source: /cvs/distapps/openmap/src/cserver/link/src/LinkSocket.c,v $ * $RCSfile: LinkSocket.c,v $ * $Revision: 1.2 $ * $Date: 2004/01/26 19:07:10 $ * $Author: dietrick $ *  * ********************************************************************** */#include <stdlib.h>#include <stdio.h>#include "LinkSocket.h"#include "GlobalConstants.h"#define DEBUG_ME "LINKSERVER"#include <toolLib/debugging.h>DebugVariable(LINK,"LINK",0x01);DebugVariable(LINKSOCKET,"LINKSOCKET",0x04);/*  flushes the socket's writebuffer.  returns OK if it successfully wrote the entire buffer to socket,  NOK otherwise.*/int Socketflush(LinkSocket *socket){        if(socket->currentbuffer > 0){        int nbyteswritten;        int nbytestowrite = socket->currentbuffer;        if (Debug(LINKSOCKET))            printf("flushing socket writing %d bytes \n", nbytestowrite);                nbyteswritten = socket_send(socket->sd, socket->writebuffer, nbytestowrite);                if(nbytestowrite == nbyteswritten){            socket->currentbuffer = 0;        } else {            socket->error = LINK_TRUE;            return NOK;        }    }    socket->error = LINK_FALSE;    return OK;}/*  copies all from parent to child except sd, since it is new for every child. */int SocketCopyParentToChild(LinkSocket *parent, LinkSocket *child){        child->host = parent->host;    child->mainsd = parent->mainsd;    child->port = parent->port;    child->error = LINK_FALSE;    child->maxbuffer = MAX_SOCKET_BUFFER_SIZE;    child->writebuffer = (char *)malloc(child->maxbuffer);    if (child->writebuffer == NULL)      return -1; /* Memory allocation error. */    child->currentbuffer = 0;    child->isBuffered = parent->isBuffered;    return OK;}int InitSocket(LinkSocket *socket){    set_socket_domain(AF_INET);    socket->host = NULL; /*Keep it Null for the time being*/    if(-1 == open_socket_port(&socket->mainsd, socket->port, NULL, SERVER))    {        socket->error = LINK_TRUE;        return NOK;    }        socket->error = LINK_FALSE;    socket->currentbuffer = 0;    socket->maxbuffer = MAX_SOCKET_BUFFER_SIZE;    socket->isBuffered = LINK_TRUE;    socket->writebuffer = (char *)malloc(socket->maxbuffer);    if (socket->writebuffer == NULL)      return -1; /* Memory allocation error */    return OK;}void FreeSocket(LinkSocket *socket){    if(NULL != socket->host)        free(socket->host);    socket->host = NULL;    if(NULL != socket->writebuffer)        free(socket->writebuffer);    socket->writebuffer = NULL;}/*Checks if the error flag is set return OK or NOK*/int CheckSocket(LinkSocket* socket){    if (socket->error){        if (Debug(LINK)) printf("LinkSocket: problem with link socket...\n");    }    return (socket->error);}/*  returns NOK if datasize is more than maxbuffer and flushes the socket.  returns OK if datasize + socket->currentbuffer is less than maxbuffer   Flushes the buffer and returns OK,   if socket->currentbuffer + datasize(obviously < maxbuffer) is greater than maxbuffer*//*Used internally by WriteInteger etc*/static int WriteToBuffer(LinkSocket *socket, int datasize){    if(datasize > socket->maxbuffer){        Socketflush(socket);        return NOK;    }    if((datasize + socket->currentbuffer) < socket->maxbuffer){        return OK;    } else {        return Socketflush(socket);    }}void IntegerToBytes(char *toBuffer, int ivalue){    toBuffer[0] = (toBuffer[0] & 0x00) | (ivalue >> 24); /*MSB goes first*/    toBuffer[1] = (toBuffer[1] & 0x00) | (ivalue >> 16);     toBuffer[2] = (toBuffer[2] & 0x00) | (ivalue >> 8);    toBuffer[3] = (toBuffer[3] & 0x00) | (ivalue);       /*LSB goes last*/}void BytesToInteger(int *ptrIntegerBuffer, char *fromBuffer){    *ptrIntegerBuffer = 0;    *ptrIntegerBuffer = ((fromBuffer[0] & 0xFF) << 24) | ((fromBuffer[1] & 0xFF) << 16 ) |        ((fromBuffer[2] & 0xFF) << 8) | ((fromBuffer[3] & 0xFF));    }/*  Read an integer value in to provided buffer*/int ReadInteger(LinkSocket *socket, int *ptrIntegerBuffer){        char intbuff[N_BYTES_PER_INTEGER]; /*Read integer in buffer*/    int bytesRead;    /*socket_receive takes void* as 2nd paramater and its ok to pass a char*  */    bytesRead = socket_receive(socket->sd, intbuff, N_BYTES_PER_INTEGER);         if(N_BYTES_PER_INTEGER == bytesRead)    {           /* All right, we got it*/        BytesToInteger(ptrIntegerBuffer,intbuff);            socket->error = LINK_FALSE;          return OK;    }    /* Oops..some error while receiving*/    socket->error = LINK_TRUE;    return NOK;}int WriteInteger(LinkSocket *socket, int iValue){    char intbuff[N_BYTES_PER_INTEGER];    int nbyteswritten;        if(socket->isBuffered == LINK_TRUE && OK == WriteToBuffer(socket, N_BYTES_PER_INTEGER)){        nbyteswritten = BufferedWriteInteger(&(socket->writebuffer[socket->currentbuffer]),                                             iValue);        socket->currentbuffer += nbyteswritten;    } else {        IntegerToBytes(intbuff,iValue);        nbyteswritten = socket_send(socket->sd, intbuff, N_BYTES_PER_INTEGER);    }        if(N_BYTES_PER_INTEGER == nbyteswritten){        socket->error = LINK_FALSE;        return OK;    }    socket->error = LINK_TRUE;    return NOK;}int BufferedWriteInteger(char *toBuffer, int iValue){    IntegerToBytes(toBuffer, iValue);    return N_BYTES_PER_INTEGER;}int ReadFloat(LinkSocket *socket, double *ptrDoubleBuffer){        char buff[N_BYTES_PER_FLOAT]; /*Read float in this buffer*/    int bytesRead;    /*socket_receive takes void* as 2nd paramater and its ok to pass char*  */    bytesRead = socket_receive(socket->sd, buff, N_BYTES_PER_FLOAT);        if(N_BYTES_PER_FLOAT == bytesRead)    {           /* All right, we got it*/                float *f;        int i = 0;        /*do it on integer first. */        BytesToInteger(&i,buff);                /*type cast just the pointer*/        f = (float *)&i;                /*type cast the float value to double*/        *ptrDoubleBuffer = (double)*f;                socket->error = LINK_FALSE;        return OK;    }    /* Oops..some error while receiving*/    socket->error = LINK_TRUE;    return NOK;    }int WriteFloat(LinkSocket *socket, float fvalue){        char buff[N_BYTES_PER_FLOAT];    int nbyteswritten;    int *iptr;    iptr = (int *)&fvalue;        if(socket->isBuffered == LINK_TRUE && OK == WriteToBuffer(socket,N_BYTES_PER_FLOAT)){        nbyteswritten = BufferedWriteFloat(&(socket->writebuffer[socket->currentbuffer]), fvalue);        socket->currentbuffer += nbyteswritten;    } else {        IntegerToBytes(buff, *iptr);        nbyteswritten = socket_send(socket->sd, buff, N_BYTES_PER_FLOAT);    }        if(N_BYTES_PER_FLOAT == nbyteswritten){        socket->error = LINK_FALSE;        return OK;    }        socket->error = LINK_TRUE;    return NOK;}int BufferedWriteFloat(char *toBuffer, float fvalue){    int *iptr;    iptr = (int *)&fvalue;    IntegerToBytes(toBuffer, *iptr);    return N_BYTES_PER_FLOAT;}int ReadChars(LinkSocket *socket, char buffer[], int nchartoread){        int nbytesread;        nbytesread = socket_receive(socket->sd, buffer, nchartoread);         if(nchartoread == nbytesread)      {        buffer[nchartoread] = '\0';        socket->error = LINK_FALSE;        return OK;      }    /*system error. */    socket->error = LINK_TRUE;    return NOK;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人在线视频播放| 91香蕉视频在线| 亚洲精选免费视频| 2023国产精品| 欧美精品aⅴ在线视频| 成人激情开心网| 国内偷窥港台综合视频在线播放| 伊人婷婷欧美激情| 中文字幕欧美三区| 欧美白人最猛性xxxxx69交| 色婷婷综合久久久久中文| 国产麻豆成人精品| 麻豆精品视频在线观看| 亚洲五码中文字幕| 亚洲日本免费电影| 久久精品一二三| 欧美一卡在线观看| 欧美日韩一区二区三区四区五区| 91麻豆精品一区二区三区| 国产乱人伦偷精品视频不卡| 青青草国产成人av片免费| 亚洲小说欧美激情另类| 亚洲精品五月天| 亚洲欧洲99久久| 中文字幕精品三区| 国产日韩亚洲欧美综合| 337p粉嫩大胆色噜噜噜噜亚洲| 欧美人狂配大交3d怪物一区| 日本韩国一区二区三区视频| 91丨porny丨在线| av动漫一区二区| 99re这里只有精品首页| av不卡在线播放| 成人午夜免费电影| 成人动漫视频在线| 本田岬高潮一区二区三区| 成人性生交大片免费看视频在线| 国产精品亚洲视频| 国产精一品亚洲二区在线视频| 麻豆91在线看| 国内成人免费视频| 国产麻豆欧美日韩一区| 风流少妇一区二区| www.亚洲激情.com| 一本一道波多野结衣一区二区| 91麻豆国产福利在线观看| bt7086福利一区国产| 色婷婷av久久久久久久| 一本大道久久a久久精二百| 色94色欧美sute亚洲13| 欧美亚洲国产bt| 欧美日韩午夜在线| 69堂国产成人免费视频| 欧美大度的电影原声| 久久综合九色综合欧美98| 国产日韩视频一区二区三区| 18成人在线观看| 亚洲午夜影视影院在线观看| 日韩高清一区在线| 久久99精品国产91久久来源| 国产v综合v亚洲欧| 91在线视频网址| 欧美日本在线看| 久久伊人中文字幕| 中文字幕一区二区三区在线不卡| 亚洲综合成人在线视频| 蜜桃一区二区三区四区| 国产91综合一区在线观看| 91在线视频免费91| 91麻豆精品国产91久久久久| 久久一区二区三区国产精品| 综合在线观看色| 免费人成在线不卡| 成人黄色软件下载| 欧美理论电影在线| 久久久久久麻豆| 夜夜嗨av一区二区三区四季av| 免费在线看一区| www.av亚洲| 91精品久久久久久久91蜜桃| 国产精品视频你懂的| 亚洲bdsm女犯bdsm网站| 国产69精品久久777的优势| 欧美三电影在线| 国产亚洲精品免费| 亚洲国产一二三| 成人免费看黄yyy456| 欧美疯狂做受xxxx富婆| 国产精品视频看| 免费成人你懂的| 一本一道综合狠狠老| 久久婷婷国产综合精品青草| 亚洲午夜激情av| 成人高清在线视频| 日韩精品一区二| 亚洲自拍都市欧美小说| 高清国产一区二区| 欧美一二三四区在线| 亚洲欧美色一区| 粉嫩一区二区三区性色av| 欧美一区二区在线免费观看| 亚洲欧美激情插| 国产乱一区二区| 日韩精品一区二区在线观看| 一区二区三区在线视频观看| 国产成人精品免费视频网站| 欧美一区二区福利视频| 夜夜嗨av一区二区三区四季av| 丁香啪啪综合成人亚洲小说| 日韩精品综合一本久道在线视频| 亚洲一级二级三级在线免费观看| 不卡一区在线观看| 久久色成人在线| 极品少妇xxxx精品少妇| 制服丝袜日韩国产| 亚洲福利国产精品| 欧亚一区二区三区| 亚洲欧洲综合另类在线| 日韩免费电影一区| 亚洲综合丁香婷婷六月香| 91视视频在线观看入口直接观看www| 久久综合国产精品| 久久av中文字幕片| 日韩一区二区精品| 天堂va蜜桃一区二区三区| 欧美三级一区二区| 亚洲第一会所有码转帖| 在线观看区一区二| 亚洲综合免费观看高清完整版| 色网站国产精品| 一区二区三区中文在线观看| 色偷偷久久一区二区三区| 亚洲精品一卡二卡| 在线影视一区二区三区| 亚洲男同1069视频| 一本久久a久久精品亚洲| 亚洲欧美激情视频在线观看一区二区三区| 成人av免费观看| 亚洲欧美另类久久久精品2019| 91免费国产在线| 亚洲一区二区欧美激情| 欧美日韩一区视频| 奇米777欧美一区二区| 日韩欧美久久久| 国内不卡的二区三区中文字幕| 精品国产1区二区| 国产精品66部| 国产精品久久久久久久久图文区| av中文字幕不卡| 亚洲一区av在线| 日韩亚洲欧美在线观看| 国产麻豆一精品一av一免费| 国产精品欧美一级免费| 色吊一区二区三区| 日韩国产在线观看一区| 精品99一区二区三区| 国产成人精品1024| 亚洲欧美日韩久久| 欧美一区在线视频| 国产乱码精品一区二区三区忘忧草 | 色综合天天综合狠狠| 一区二区高清免费观看影视大全 | 青青国产91久久久久久| 久久婷婷久久一区二区三区| 99久久久免费精品国产一区二区| 一区二区三区毛片| 欧美电视剧在线观看完整版| 懂色av一区二区夜夜嗨| 亚洲国产精品一区二区www在线| 日韩欧美国产成人一区二区| 丁香六月综合激情| 午夜精品久久久久久久| 久久影院电视剧免费观看| 色婷婷亚洲综合| 精品一区二区三区av| 成人欧美一区二区三区在线播放| 欧美日韩国产在线观看| 国产综合久久久久影院| 亚洲人成在线播放网站岛国| 日韩免费在线观看| 91视频一区二区| 激情伊人五月天久久综合| 亚洲日穴在线视频| 日韩精品一区二区三区在线观看 | 日韩欧美成人一区| 92国产精品观看| 精品一区二区在线免费观看| 亚洲精品美国一| 国产亚洲精品aa| 欧美理论在线播放| 99精品偷自拍| 国产一区二区三区四区在线观看| 亚洲一二三专区| 国产精品女同一区二区三区| 欧美一卡在线观看| 在线免费观看日本欧美| 懂色av中文一区二区三区| 美国三级日本三级久久99| 亚洲一区二三区| 国产精品久久久久久久久免费丝袜|