⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 socket_wrapper.hpp

📁 这个文件是windows mysql源码
💻 HPP
字号:
/*   Copyright (C) 2000-2007 MySQL AB   This program is free software; you can redistribute it and/or modify   it under the terms of the GNU General Public License as published by   the Free Software Foundation; version 2 of the License.   This program is distributed in the hope that it will be useful,   but WITHOUT ANY WARRANTY; without even the implied warranty of   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the   GNU General Public License for more details.   You should have received a copy of the GNU General Public License   along with this program; see the file COPYING. If not, write to the   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,   MA  02110-1301  USA.*//* The socket wrapper header defines a Socket class that hides the differences * between Berkely style sockets and Windows sockets, allowing transparent TCP * access. */#ifndef yaSSL_SOCKET_WRAPPER_HPP#define yaSSL_SOCKET_WRAPPER_HPP#include <assert.h>#ifdef _WIN32    #include <winsock2.h>#else     #include <sys/time.h>    #include <sys/types.h>    #include <sys/socket.h>    #include <unistd.h>    #include <netinet/in.h>    #include <arpa/inet.h>#endifnamespace yaSSL {typedef unsigned int uint;#ifdef _WIN32    typedef SOCKET socket_t;#else    typedef int socket_t;    const socket_t INVALID_SOCKET = -1;    const int SD_RECEIVE   = 0;    const int SD_SEND      = 1;    const int SD_BOTH      = 2;    const int SOCKET_ERROR = -1;#endiftypedef unsigned char byte;// Wraps Windows Sockets and BSD Socketsclass Socket {    socket_t socket_;                    // underlying socket descriptor    bool     wouldBlock_;                // if non-blocking data, for last read     bool     nonBlocking_;               // is option setpublic:    explicit Socket(socket_t s = INVALID_SOCKET);    ~Socket();    void     set_fd(socket_t s);    uint     get_ready() const;    socket_t get_fd()    const;    uint send(const byte* buf, unsigned int len, int flags = 0) const;    uint receive(byte* buf, unsigned int len, int flags = 0);    bool wait();    bool WouldBlock() const;    bool IsNonBlocking() const;    void closeSocket();    void shutDown(int how = SD_SEND);    static int  get_lastError();    static void set_lastError(int error);private:    Socket(const Socket&);              // hide copy    Socket& operator= (const Socket&);  // and assign};} // naemspace#endif // yaSSL_SOCKET_WRAPPER_HPP

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -