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

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

?? socketcomm.h

?? Multi-threaded Client/Server Socket Class
?? H
字號(hào):
///////////////////////////////////////////////////////////////////////////////
// FILE : SocketComm.h
// Header file for CSocketComm class
// CSocketComm
//     Generic class for Socket Communication
///////////////////////////////////////////////////////////////////////////////

#ifndef _SOCKETCOMM_H_
#define _SOCKETCOMM_H_
#include <list>

#include <stdlib.h>
#include <winsock2.h>
#include <ws2tcpip.h>
#pragma comment(lib, "ws2_32")

// Event value
#define EVT_CONSUCCESS      0x0000  // Connection established
#define EVT_CONFAILURE      0x0001  // General failure - Wait Connection failed
#define EVT_CONDROP         0x0002  // Connection dropped
#define EVT_ZEROLENGTH      0x0003  // Zero length message

#ifndef BUFFER_SIZE
#define BUFFER_SIZE     MAX_PATH
#endif
#define HOSTNAME_SIZE   MAX_PATH
#define STRING_LENGTH   40


struct SockAddrIn : public SOCKADDR_IN {
public:
    SockAddrIn() { Clear(); }
    SockAddrIn(const SockAddrIn& sin) { Copy( sin ); }
    ~SockAddrIn() { }
    SockAddrIn& Copy(const SockAddrIn& sin);
    void    Clear() { memset(this, 0, sizeof(SOCKADDR_IN)); }
    bool    IsEqual(const SockAddrIn& sin) const;
    bool    IsGreater(const SockAddrIn& sin) const;
    bool    IsLower(const SockAddrIn& pm) const;
    bool    IsNull() const { return ((sin_addr.s_addr==0L)&&(sin_port==0)); }
    ULONG   GetIPAddr() const { return sin_addr.s_addr; }
    short   GetPort() const { return sin_port; }
    bool    CreateFrom(LPCTSTR sAddr, LPCTSTR sService, int nFamily = AF_INET);
    SockAddrIn& operator=(const SockAddrIn& sin) { return Copy( sin ); }
    bool    operator==(const SockAddrIn& sin) { return IsEqual( sin ); }
    bool    operator!=(const SockAddrIn& sin) { return !IsEqual( sin ); }
    bool    operator<(const SockAddrIn& sin)  { return IsLower( sin ); }
    bool    operator>(const SockAddrIn& sin)  { return IsGreater( sin ); }
    bool    operator<=(const SockAddrIn& sin) { return !IsGreater( sin ); }
    bool    operator>=(const SockAddrIn& sin) { return !IsLower( sin ); }
    operator LPSOCKADDR() { return (LPSOCKADDR)(this); }
    size_t  Size() const { return sizeof(SOCKADDR_IN); }
    void    SetAddr(SOCKADDR_IN* psin) { memcpy(this, psin, Size()); }
};

typedef std::list<SockAddrIn> CSockAddrList;

struct stMessageProxy
{
  SockAddrIn address;
  BYTE byData[BUFFER_SIZE];
};

class CSocketComm
{
public:
    CSocketComm();
    virtual ~CSocketComm();

    bool IsOpen() const;    // Is Socket valid?
    bool IsStart() const;   // Is Thread started?
    bool IsServer() const;  // Is running in server mode
    bool IsBroadcast() const; // Is UDP Broadcast active
    bool IsSmartAddressing() const; // Is Smart Addressing mode support
    SOCKET GetSocket() const;   // return socket handle
    void SetServerState(bool bServer);  // Run as server mode if true
    void SetSmartAddressing(bool bSmartAddressing); // Set Smart addressing mode
    bool GetSockName(SockAddrIn& saddr_in); // Get Socket name - address
    bool GetPeerName(SockAddrIn& saddr_in); // Get Peer Socket name - address
    bool AddMembership(LPCTSTR strAddress);
    bool DropMembership(LPCTSTR strAddress);
    void AddToList(const SockAddrIn& saddr_in); // Add an address to the list
    void RemoveFromList(const SockAddrIn& saddr_in);    // Remove an address from the list
    void CloseComm();       // Close Socket
    bool WatchComm();       // Start Socket thread
    void StopComm();        // Stop Socket thread

    // Create a socket - Server side (support for multiple adapters)
    bool CreateSocketEx(LPCTSTR strHost, LPCTSTR strServiceName, int nFamily, int nType, UINT uOptions /* = 0 */);
    // Create a Socket - Server side
    bool CreateSocket(LPCTSTR strServiceName, int nProtocol, int nType, UINT uOptions = 0);
    // Create a socket, connect to (Client side)
    bool ConnectTo(LPCTSTR strDestination, LPCTSTR strServiceName, int nProtocol, int nType);

// Event function - override to get data
    virtual void OnDataReceived(const LPBYTE lpBuffer, DWORD dwCount);
    virtual void OnEvent(UINT uEvent, LPVOID lpvData);
// Run function - override to implement a new behaviour
    virtual void Run();

// Data function
    DWORD ReadComm(LPBYTE lpBuffer, DWORD dwSize, DWORD dwTimeout);
    DWORD WriteComm(const LPBYTE lpBuffer, DWORD dwCount, DWORD dwTimeout);

    // Utility functions
    static SOCKET WaitForConnection(SOCKET sock); // Wait For a new connection (Server side)
    static bool ShutdownConnection(SOCKET sock);  // Shutdown a connection
    static USHORT GetPortNumber( LPCTSTR strServiceName );  // Get service port number
    static ULONG GetIPAddress( LPCTSTR strHostName );   // Get IP address of a host
    static bool GetLocalName(LPTSTR strName, UINT nSize);   // GetLocalName
    static bool GetLocalAddress(LPTSTR strAddress, UINT nSize); // GetLocalAddress
// SocketComm - data
protected:
    HANDLE      m_hComm;        // Serial Comm handle
    HANDLE      m_hThread;      // Thread Comm handle
    bool        m_bServer;      // Server mode (true)
    bool        m_bSmartAddressing; // Smart Addressing mode (true) - many listeners
    bool        m_bBroadcast;   // Broadcast mode
    CSockAddrList m_AddrList;   // Connection address list for broadcast
    HANDLE      m_hMutex;       // Mutex object
// SocketComm - function
protected:
    // Synchronization function
    void LockList();            // Lock the object
    void UnlockList();          // Unlock the object

    static UINT WINAPI SocketThreadProc(LPVOID pParam);

private:
};

#endif // _SOCKETCOMM_H_

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜久久久影院| 久久精品人人做人人爽人人| 日韩伦理电影网| 99精品视频在线播放观看| 国产精品久久久久影院色老大| 成人在线视频首页| 中文字幕不卡的av| 日本韩国精品在线| 亚洲成人综合网站| 精品卡一卡二卡三卡四在线| 国产成人av在线影院| 亚洲欧洲日韩在线| 欧美日韩一区二区在线视频| 色88888久久久久久影院野外| 亚洲欧美色一区| 欧美日韩国产bt| 精品中文字幕一区二区小辣椒| 久久综合九色综合欧美就去吻| 成人久久18免费网站麻豆| 亚洲综合一区在线| 精品免费视频.| 不卡的av电影| 丝袜脚交一区二区| 欧美国产精品专区| 欧美日韩在线播放一区| 久久精品国产亚洲5555| 亚洲区小说区图片区qvod| 日韩一区二区精品在线观看| 国产成人精品免费视频网站| 亚洲电影欧美电影有声小说| 精品久久人人做人人爱| 一本久久精品一区二区| 精品一区二区av| 一区二区三区日韩欧美| xf在线a精品一区二区视频网站| 91在线porny国产在线看| 蜜桃视频一区二区三区在线观看| 国产精品护士白丝一区av| 日韩一本二本av| 在线观看av不卡| 国产98色在线|日韩| 亚洲成在线观看| 国产精品久久久久国产精品日日| 欧美一区二区美女| 色婷婷久久久综合中文字幕| 精品综合久久久久久8888| 一区二区三区视频在线看| 26uuu精品一区二区在线观看| 欧美在线免费观看亚洲| 成人av网站在线| 国产老妇另类xxxxx| 水蜜桃久久夜色精品一区的特点| 中文字幕一区二区5566日韩| 精品美女在线播放| 制服丝袜中文字幕亚洲| 日本道免费精品一区二区三区| 国产不卡免费视频| 九九视频精品免费| 蜜臀va亚洲va欧美va天堂| 一区二区三区欧美视频| 中文字幕人成不卡一区| 国产亚洲精品福利| 26uuu久久综合| 精品1区2区在线观看| 日韩精品一区二区三区老鸭窝| 欧美视频一区二区在线观看| 色噜噜狠狠成人网p站| 不卡av电影在线播放| 国产精品美女久久久久高潮| 蜜臀av一区二区| 青青草原综合久久大伊人精品优势| 亚洲图片欧美视频| 亚洲第一二三四区| 视频一区在线视频| 日韩在线一二三区| 日本不卡高清视频| 久久成人精品无人区| 九色综合国产一区二区三区| 韩国中文字幕2020精品| 国产中文字幕一区| 国产精品1024久久| 不卡影院免费观看| 不卡av免费在线观看| 91色综合久久久久婷婷| 色播五月激情综合网| 欧美亚洲禁片免费| 制服丝袜中文字幕一区| 欧美成人精品二区三区99精品| 欧美精品一区二区久久久| 国产午夜精品久久久久久免费视| 中文字幕av一区二区三区高| 国产精品国产精品国产专区不片 | 日一区二区三区| 亚洲成人资源在线| 久久精品国产亚洲aⅴ| 国产精品 欧美精品| 波多野结衣在线一区| 色999日韩国产欧美一区二区| 欧美吻胸吃奶大尺度电影| 日韩一级二级三级精品视频| 国产日韩亚洲欧美综合| 日韩伦理av电影| 日本人妖一区二区| 粉嫩绯色av一区二区在线观看| 91在线观看视频| 91精品国产91久久综合桃花| 久久综合九色综合欧美98| 亚洲人成网站在线| 美女视频黄 久久| 丁香天五香天堂综合| 欧美日韩激情在线| 国产日韩av一区| 亚洲一区二区成人在线观看| 蓝色福利精品导航| 91亚洲精品久久久蜜桃| 日韩视频不卡中文| ●精品国产综合乱码久久久久| 日韩精彩视频在线观看| 国产成人亚洲精品狼色在线| 欧美日韩一区二区欧美激情| 国产亚洲欧美色| 日韩高清不卡一区二区| 成人h动漫精品一区二| 4438亚洲最大| 亚洲视频在线一区| 黄色小说综合网站| 欧美色爱综合网| 国产日韩成人精品| 蜜桃91丨九色丨蝌蚪91桃色| 91在线观看免费视频| 久久久亚洲国产美女国产盗摄| 亚洲国产精品一区二区久久恐怖片| 黄页视频在线91| 91精品国产综合久久香蕉的特点| 亚洲欧洲日韩在线| 国产激情偷乱视频一区二区三区 | 欧美三级一区二区| 国产精品午夜春色av| 青青草成人在线观看| 91久久精品网| 亚洲欧美日韩一区二区三区在线观看| 精品一区二区综合| 这里只有精品99re| 成人精品免费网站| 精品国产乱码久久久久久免费| 亚洲自拍偷拍九九九| 国产成人免费视频网站高清观看视频| 日韩情涩欧美日韩视频| 日日嗨av一区二区三区四区| 一本色道亚洲精品aⅴ| 日本一区二区视频在线| 国产一区视频导航| 日韩欧美国产综合| 美女精品自拍一二三四| 欧美精品在线视频| 婷婷成人综合网| 欧美羞羞免费网站| 一区二区三区四区乱视频| 91网站黄www| 亚洲精品亚洲人成人网| 北条麻妃一区二区三区| 中文字幕中文字幕一区| 99久久99久久综合| 中文字幕一区在线观看视频| 国产成人aaa| 欧美国产一区在线| 成人污视频在线观看| 国产精品卡一卡二| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 丁香六月久久综合狠狠色| 久久蜜桃一区二区| 成人精品小蝌蚪| 中文字幕一区二| 色国产综合视频| 视频一区二区中文字幕| 91精品久久久久久久久99蜜臂| 奇米精品一区二区三区在线观看| 日韩区在线观看| 国产高清不卡一区二区| 国产精品久久久久aaaa樱花 | 国产mv日韩mv欧美| 国产欧美日韩麻豆91| 成人黄色网址在线观看| 国产精品情趣视频| 欧美综合亚洲图片综合区| 五月天久久比比资源色| 精品少妇一区二区三区日产乱码 | 9色porny自拍视频一区二区| 亚洲欧洲日本在线| 在线免费视频一区二区| 日本不卡高清视频| 亚洲国产激情av| 欧美中文字幕一区二区三区亚洲| 天天色天天爱天天射综合| 欧美成人精品高清在线播放| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 中文字幕视频一区二区三区久| 色综合久久天天| 青青国产91久久久久久| 中文乱码免费一区二区|