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

📄 gsockunx.h

📁 wxGTK 是 wxWidgets 的 linux GTK+ (>2.2.3)版本。wxWidgets 是一个跨平台的 GUI 框架
💻 H
字号:
/* ------------------------------------------------------------------------- * Project:     GSocket (Generic Socket) for WX * Name:        gsockunx.h * Copyright:   (c) Guilhem Lavaux * Licence:     wxWindows Licence * Purpose:     GSocket Unix header * CVSID:       $Id: gsockunx.h,v 1.21 2005/05/04 18:53:05 JS Exp $ * ------------------------------------------------------------------------- */#ifndef __GSOCK_UNX_H#define __GSOCK_UNX_H#ifndef __GSOCKET_STANDALONE__#include "wx/setup.h"#endif#if wxUSE_SOCKETS || defined(__GSOCKET_STANDALONE__)#ifndef __GSOCKET_STANDALONE__#include "wx/gsocket.h"#else#include "gsocket.h"#endifclass GSocketGUIFunctionsTableConcrete: public GSocketGUIFunctionsTable{public:    virtual bool OnInit();    virtual void OnExit();    virtual bool CanUseEventLoop();    virtual bool Init_Socket(GSocket *socket);    virtual void Destroy_Socket(GSocket *socket);    virtual void Install_Callback(GSocket *socket, GSocketEvent event);    virtual void Uninstall_Callback(GSocket *socket, GSocketEvent event);    virtual void Enable_Events(GSocket *socket);    virtual void Disable_Events(GSocket *socket);};class GSocket{public:    GSocket();    virtual ~GSocket();    bool IsOk() { return m_ok; }    void Close();    void Shutdown();    GSocketError SetLocal(GAddress *address);    GSocketError SetPeer(GAddress *address);    GAddress *GetLocal();    GAddress *GetPeer();    GSocketError SetServer();    GSocket *WaitConnection();    bool SetReusable();    GSocketError Connect(GSocketStream stream);    GSocketError SetNonOriented();    int Read(char *buffer, int size);    int Write(const char *buffer, int size);    GSocketEventFlags Select(GSocketEventFlags flags);    void SetNonBlocking(bool non_block);    void SetTimeout(unsigned long millisec);    GSocketError WXDLLIMPEXP_NET GetError();    void SetCallback(GSocketEventFlags flags,        GSocketCallback callback, char *cdata);    void UnsetCallback(GSocketEventFlags flags);    GSocketError GetSockOpt(int level, int optname, void *optval, int *optlen);    GSocketError SetSockOpt(int level, int optname,        const void *optval, int optlen);    virtual void Detected_Read();    virtual void Detected_Write();protected:    void Enable(GSocketEvent event);    void Disable(GSocketEvent event);    GSocketError Input_Timeout();    GSocketError Output_Timeout();    int Recv_Stream(char *buffer, int size);    int Recv_Dgram(char *buffer, int size);    int Send_Stream(const char *buffer, int size);    int Send_Dgram(const char *buffer, int size);    bool m_ok;public:    /* DFE: We can't protect these data member until the GUI code is updated */    /* protected: */  int m_fd;  GAddress *m_local;  GAddress *m_peer;  GSocketError m_error;  bool m_non_blocking;  bool m_server;  bool m_stream;  bool m_establishing;  bool m_reusable;  unsigned long m_timeout;  /* Callbacks */  GSocketEventFlags m_detected;  GSocketCallback m_cbacks[GSOCK_MAX_EVENT];  char *m_data[GSOCK_MAX_EVENT];  char *m_gui_dependent;};#ifdef __cplusplusextern "C" {#endif /* __cplusplus *//* Definition of GAddress */struct _GAddress{  struct sockaddr *m_addr;  size_t m_len;  GAddressType m_family;  int m_realfamily;  GSocketError m_error;};#ifdef __cplusplus}#endif  /* __cplusplus */#ifdef __cplusplusextern "C" {#endif /* __cplusplus *//* GAddress */GSocketError _GAddress_translate_from(GAddress *address,                                      struct sockaddr *addr, int len);GSocketError _GAddress_translate_to  (GAddress *address,                                      struct sockaddr **addr, int *len);GSocketError _GAddress_Init_INET(GAddress *address);GSocketError _GAddress_Init_UNIX(GAddress *address);#ifdef __cplusplus}#endif  /* __cplusplus */#endif  /* wxUSE_SOCKETS || defined(__GSOCKET_STANDALONE__) */#endif  /* __GSOCK_UNX_H */

⌨️ 快捷键说明

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