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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? socket.cpp

?? agentspark 機器人模擬代碼 適用robocup 機器人步態(tài)模擬仿真(機器人動作在NAOGETUP.cpp下修改)
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
                                   (const char*)&ison,
#else
                                   (void*)&ison,
#endif
                                   sizeof( int ) );
            }
#endif
            errno = EPERM;
            return -1;
        }

                Socket::SocketDesc
        Socket::getFD() const
        { return ( isOpen() ? *(m_handle.get()) : Socket::INVALIDSOCKET ); }

        bool
        Socket::isOpen() const
        { return m_handle.get() != NULL; }

        bool
        Socket::isConnected() const
        {
            return getPeer() != Addr();
        }

        Addr
        Socket::getDest() const
        { return getPeer(); }

        int
        Socket::send( const char* msg,
                      size_t len,
                      const Addr& dest,
                      int flags,
                      CheckingType check )
        {
            if( check == DONT_CHECK )
            {
                return ::sendto( getFD(), msg,
#if defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
                                                                (int)len,
#else
                                                                len,
#endif
                                                                flags,
                                 (struct sockaddr *)&( dest.getAddr() ),
                                 sizeof( dest.getAddr() ) );
            }
            else
            {
                for(;;)
                {
                    int sent = ::sendto( getFD(), msg,
#if defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
                                                                                 (int)len,
#else
                                                                                 len,
#endif
                                                                                 flags,
                                         (struct sockaddr *)&( dest.getAddr() ),
                                         sizeof( dest.getAddr() ) );
                    if( sent != -1
                        || ( errno != EINTR
#if defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
                                                     && errno != WSAEWOULDBLOCK
#else
                                                     && errno != EWOULDBLOCK
#endif
                                                        ) )
                        return sent;
                }
            }
        }

        int
        Socket::send( const char* msg,
                      size_t len,
                      int flags,
                      CheckingType check )
        {
            if( check == DONT_CHECK )
            {
                return ::send( getFD(), msg,
#if defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
                                                           (int)len,
#else
                                                           len,
#endif
                                                           flags );
            }
            else
            {
                for(;;)
                {
                    int sent = ::send( getFD(), msg,
#if defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
                                                           (int)len,
#else
                                                           len,
#endif
                                                           flags );
                    if( sent != -1
                        || ( errno != EINTR
#if defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
                                                     && errno != WSAEWOULDBLOCK
#else
                                                     && errno != EWOULDBLOCK
#endif
                                                        ) )
                        return sent;
                }
            }
        }

        int
        Socket::recv( char* msg,
                      size_t len,
                      Addr& from,
                      int flags,
                      CheckingType check )
        {
            if( check == DONT_CHECK )
            {
                Addr::AddrType addr;
                socklen_t from_len = sizeof( addr );
                int rval = ::recvfrom( getFD(), msg,
#if defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
                                                                           (int)len,
#else
                                                                           len,
#endif
                                                                           flags,
                                       (struct sockaddr *)&addr, &from_len );
                from = Addr( addr );
                return rval;
            }
            else
            {
                for(;;)
                {
                    Addr::AddrType addr;
                    socklen_t from_len = sizeof( addr );
                    int received = ::recvfrom( getFD(), msg,
#if defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
                                                                                  (int)len,
#else
                                                                                   len,
#endif
                                                                                   flags,
                                               (struct sockaddr *)&addr,
                                               &from_len );
                    from = Addr( addr );
                    if( received != -1
                        || errno != EINTR )
                        return received;
                }
            }
        }

        int
        Socket::recv( char* msg,
                      size_t len,
                      int flags,
                      CheckingType check )
        {
            if( check == DONT_CHECK )
                return ::recv( getFD(), msg,
#if defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
                                                      (int)len,
#else
                                                          len,
#endif
                                                          flags );
            else
            {
                for(;;)
                {
                    int received = ::recv( getFD(), msg,
#if defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
                                                                               (int)len,
#else
                                                                               len,
#endif
                                                                               flags );
                    if( received != -1
                        || errno != EINTR )
                        return received;
                }
            }
        }

        bool
        Socket::listen( int backlog )
        {
            return ::listen( getFD(), backlog ) == 0;
        }

        bool
        Socket::accept( Socket& sock )
        {
            SocketDesc fd = ::accept( getFD(), NULL, 0 );
            if( fd == INVALIDSOCKET )
                return false;
            sock = TCPSocket( fd );
            return true;
        }
        
        Socket* Socket::accept(Addr& addr)
        {
            socklen_t len = sizeof(struct sockaddr);
            SocketDesc fd = ::accept( getFD(), 
                                      (struct sockaddr *)&( addr.getAddr() ),
                                      &len
                                      );

            if (fd == INVALIDSOCKET )
                {
                    return 0;
                }

            return new TCPSocket(fd);
        }

        int
        Socket::recv( int timeout,
                      char* msg,
                      size_t len,
                      Addr& from,
                      int flags )
        {
#if defined (HAVE_POLL_H)
            pollfd fd = { getFD(), POLLIN | POLLPRI, 0 };
            int res = poll( &fd, 1, timeout );
            if( res == 0 )
            {
                errno = EAGAIN;
                return -1;
            }
            else if( res == 1 )
            {
                return recv( msg,
#if defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
                                                         (int)len,
#else
                                                         len,
#endif
                                                         from, flags );
            }
            else
            {
                return res;
            }
#else
            errno = EPERM;
            return -1;
#endif
        }

        int
        Socket::recv( int timeout,
                      char* msg,
                      size_t len,
                      int flags )
        {
#if defined (HAVE_POLL_H)
            pollfd fd = { getFD(), POLLIN | POLLPRI, 0 };
            int res = poll( &fd, 1, timeout );
            if( res == 0 )
            {
                errno = EAGAIN;
                return -1;
            }
            else if( res == 1 )
            {
                return recv( msg,
#if defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
                                                         (int)len,
#else
                                                         len,
#endif
                                                         flags );
            }
            else
            {
                return res;
            }
#else
            errno = EPERM;
            return -1;
#endif
        }
    }
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文一区在线播放| 粉嫩久久99精品久久久久久夜| 免费观看在线综合| 9l国产精品久久久久麻豆| 欧美一区二区视频网站| 亚洲丝袜精品丝袜在线| 国产精品自产自拍| 日韩午夜av一区| 亚洲狠狠爱一区二区三区| 成人av免费观看| 久久久久久久久久看片| 午夜视频在线观看一区二区| 91麻豆视频网站| 欧美激情在线看| 国产高清精品久久久久| 欧美一级xxx| 视频一区免费在线观看| 色婷婷av一区二区三区软件| 欧美国产日韩亚洲一区| 美国av一区二区| 717成人午夜免费福利电影| 亚洲精品国产第一综合99久久| 夫妻av一区二区| 久久久精品人体av艺术| 国产一区二区三区四区五区美女 | 久久色成人在线| 蜜桃av噜噜一区二区三区小说| 欧美男女性生活在线直播观看| ㊣最新国产の精品bt伙计久久| 高清av一区二区| 国产校园另类小说区| 国内精品伊人久久久久影院对白| 日韩一区二区免费在线电影| 日本不卡1234视频| 欧美一级高清片| 久久电影网站中文字幕| 精品乱码亚洲一区二区不卡| 精品在线播放午夜| 久久先锋资源网| 成人午夜私人影院| 亚洲精品视频免费看| 色婷婷av一区二区三区之一色屋| 一区二区三区欧美| 欧美日精品一区视频| 日本欧美在线观看| 久久免费偷拍视频| 成人免费视频网站在线观看| 国产精品久久久久国产精品日日| 日本精品一区二区三区四区的功能| 一区二区三区久久| 91精品黄色片免费大全| 国产一区二区三区| 国产精品久久毛片| 欧美视频一区在线观看| 久久国产婷婷国产香蕉| 国产欧美精品一区二区三区四区| 99久久精品99国产精品| 午夜伦理一区二区| 久久久三级国产网站| 99麻豆久久久国产精品免费| 亚洲已满18点击进入久久| 欧美一区二区三区成人| 国产精品亚洲成人| 亚洲综合激情另类小说区| 制服丝袜中文字幕亚洲| 国产成人在线视频网址| 亚洲综合小说图片| 久久久av毛片精品| 在线欧美日韩精品| 国产一区二区三区国产| 亚洲综合色噜噜狠狠| 久久久噜噜噜久久人人看| 欧美网站一区二区| 国产91在线|亚洲| 视频一区二区欧美| 中文字幕亚洲一区二区va在线| 日韩一区二区在线看| 91亚洲国产成人精品一区二区三| 日韩国产高清在线| 国产精品福利一区二区三区| 91精品国产综合久久福利软件 | 午夜精品免费在线| 欧美国产1区2区| 日韩午夜在线影院| 一本大道av伊人久久综合| 国产一区二区三区| 日本午夜精品一区二区三区电影| 中文文精品字幕一区二区| 91精品国产高清一区二区三区蜜臀 | 风间由美一区二区av101 | 国产精品成人午夜| 久久久精品黄色| 欧美一级黄色大片| 欧美日韩电影在线播放| av中文字幕在线不卡| 国产原创一区二区三区| 日韩va亚洲va欧美va久久| 97精品电影院| 五月激情综合婷婷| 亚洲精品亚洲人成人网在线播放| 精品国产一区二区亚洲人成毛片| 欧美在线你懂的| 99久久精品免费看国产免费软件| 国产毛片精品视频| 麻豆精品一区二区| 免费视频一区二区| 五月天亚洲精品| 日韩在线播放一区二区| 亚洲激情男女视频| 日韩理论电影院| 国产精品久久久久影院色老大| 2020国产精品自拍| 精品久久一区二区三区| 欧美精品一区二区三区蜜臀| 欧美一级二级在线观看| 日韩免费高清av| 精品日韩一区二区三区| 精品国产髙清在线看国产毛片| 日韩欧美一区中文| 久久亚洲精品国产精品紫薇| 久久精品人人做人人综合 | 欧美日韩国产高清一区二区 | 欧美成人性福生活免费看| 日韩欧美资源站| 久久中文娱乐网| 亚洲国产精品激情在线观看| 中文字幕不卡在线观看| 亚洲欧美视频一区| 亚洲成人久久影院| 日本欧洲一区二区| 国产剧情在线观看一区二区| 成人免费视频app| 91麻豆国产精品久久| 欧美日韩一区久久| 欧美一激情一区二区三区| 国产亚洲一区二区三区| 中文字幕日本不卡| 亚洲午夜精品一区二区三区他趣| 亚洲大片精品永久免费| 捆绑调教美女网站视频一区| 国产精品888| 色婷婷综合久久久中文一区二区| 欧美丝袜丝交足nylons图片| 国产亚洲精品bt天堂精选| 亚洲色图另类专区| 日韩激情在线观看| 国产69精品久久777的优势| 91蝌蚪porny| 日韩视频一区在线观看| 日本一区二区三区久久久久久久久不| 亚洲欧美色图小说| 久久精品国产亚洲aⅴ| 97久久精品人人澡人人爽| 91精品在线免费| 一区二区三区日韩欧美精品| 日韩专区欧美专区| 成人av在线网站| 日韩一级欧美一级| 国产精品久久久一本精品| 美女诱惑一区二区| 色欧美片视频在线观看| 26uuu亚洲综合色欧美| 一区二区三区四区在线| 激情伊人五月天久久综合| 在线区一区二视频| 中日韩免费视频中文字幕| 日韩国产欧美在线观看| 91视视频在线观看入口直接观看www | 国产三级一区二区三区| 亚洲v日本v欧美v久久精品| 韩国一区二区三区| 欧美少妇xxx| 亚洲视频网在线直播| 国产一区啦啦啦在线观看| 在线观看网站黄不卡| 欧美激情综合五月色丁香小说| 青青草成人在线观看| 欧美亚洲一区二区在线| 亚洲欧洲av另类| 国产成人av电影免费在线观看| 日韩欧美成人激情| 日韩精品一级中文字幕精品视频免费观看| www.成人网.com| 亚洲国产精品av| 丁香五精品蜜臀久久久久99网站 | 欧美在线观看视频一区二区| 欧美激情一区在线| 国产盗摄精品一区二区三区在线| 欧美一区二区精美| 日韩国产在线观看一区| 色av成人天堂桃色av| 亚洲欧洲综合另类在线| 99精品视频在线观看| 亚洲欧洲日产国码二区| 99久久综合国产精品| 亚洲图片激情小说| 91麻豆国产在线观看| 亚洲女人****多毛耸耸8| 91免费视频网址| 亚洲精品一二三|