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

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

?? socketcomm.h

?? tcp-udp高級(jí)程序設(shè)計(jì)
?? 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>
#if(_WIN32_WINNT >= 0x0400)
#include <winsock2.h>
#include <mswsock.h>
#else
#include <winsock.h>
#endif /* _WIN32_WINNT >=  0x0400 */
#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


#define BUFFER_SIZE		MAX_PATH
#define HOSTNAME_SIZE	MAX_PATH
#define STRING_LENGTH	4000//lqy modfy 40-4000

struct SockAddrIn {
public:
	SockAddrIn() { Clear(); }
	SockAddrIn(const SockAddrIn& sin) { Copy( sin ); }
	~SockAddrIn() { }
	SockAddrIn& Copy(const SockAddrIn& sin);
	void	Clear() { memset(&sockAddrIn, 0, sizeof(sockAddrIn)); }
	bool	IsEqual(const SockAddrIn& sin);
	bool	IsGreater(const SockAddrIn& sin);
	bool	IsLower(const SockAddrIn& pm);
	bool	IsNull() const { return ((sockAddrIn.sin_addr.s_addr==0L)&&(sockAddrIn.sin_port==0)); }
	ULONG	GetIPAddr() const { return sockAddrIn.sin_addr.s_addr; }
	short	GetPort() const { return sockAddrIn.sin_port; }
	bool	CreateFrom(LPCTSTR sAddr, LPCTSTR sService);
	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)(&sockAddrIn); }
	size_t	Size() const { return sizeof(sockAddrIn); }
	void	SetAddr(SOCKADDR_IN* psin) { memcpy(&sockAddrIn, psin, Size()); }
	SOCKADDR_IN sockAddrIn;
};

typedef std::list<SockAddrIn> CSockAddrList;

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

	bool IsOpen() const;	// 判斷socket是否正確
	bool IsStart() const;	// 線程是否啟動(dòng)
	bool IsServer() const;	// 是否以服務(wù)器形式啟動(dòng)
	bool IsBroadcast() const; // 是否允許UDP廣播
	bool IsSmartAddressing() const;	// Is Smart Addressing mode support
	SOCKET GetSocket() const;	// 返回socket句柄
	void SetServerState(bool bServer);	// 設(shè)定運(yùn)行模式是否為服務(wù)器模式
	void SetSmartAddressing(bool bSmartAddressing);	// Set Smart addressing mode
	bool GetSockName(SockAddrIn& saddr_in);	// 獲得socket名即地址
	bool GetPeerName(SockAddrIn& saddr_in);	// 獲得Peer Socket 名 - 地址
	void AddToList(const SockAddrIn& saddr_in);	//將地址增加到列表
	void RemoveFromList(const SockAddrIn& saddr_in);	// 從列表中刪除列表
	void CloseComm();		// 關(guān)閉 Socket
	bool WatchComm();		// 啟動(dòng) Socket 線程
	void StopComm();		// 停止 Socket 線程

	// 創(chuàng)建服務(wù)器端socket
	bool CreateSocket(LPCTSTR strServiceName, int nProtocol, int nType, UINT uOptions = 0);
	// 創(chuàng)建一個(gè)客戶端的socket
	bool ConnectTo(LPCTSTR strDestination, LPCTSTR strServiceName, int nProtocol, int nType);

	// 事件處理函數(shù) - 接收數(shù)據(jù)
	virtual void OnDataReceived(const LPBYTE lpBuffer, DWORD dwCount);
	virtual void OnEvent(UINT uEvent);
	// 主線程函數(shù)
	virtual void Run();

	// 數(shù)據(jù)函數(shù)
	DWORD ReadComm(LPBYTE lpBuffer, DWORD dwSize, DWORD dwTimeout);
	DWORD WriteComm(const LPBYTE lpBuffer, DWORD dwCount, DWORD dwTimeout);

	// Utility functions
	static SOCKET WaitForConnection(SOCKET sock); // 等待新的連接
	static bool ShutdownConnection(SOCKET sock);  // 關(guān)閉連接
	static USHORT GetPortNumber( LPCTSTR strServiceName );	// 獲得服務(wù)端口號(hào)
	static ULONG GetIPAddress( LPCTSTR strHostName );	// 獲得主機(jī)IP地址
	static bool GetLocalName(LPTSTR strName, UINT nSize);	// 獲得機(jī)器名
	static bool GetLocalAddress(LPTSTR strAddress, UINT nSize);	// 獲得本地地址
// SocketComm - data
protected:
	HANDLE		m_hComm;		// socket句柄
	HANDLE		m_hThread;		// 線程句柄
	bool		m_bServer;		// 為真表示服務(wù)器模式
	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:
	// 同步函數(shù)
	void LockList();			// 鎖住對(duì)象
	void UnlockList();			// 解開對(duì)象

	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一区二区三区免费野_久草精品视频
日本在线不卡视频一二三区| 中文字幕av免费专区久久| 国内精品嫩模私拍在线| 国产精品毛片高清在线完整版| 欧美日韩国产综合一区二区| 国产精品18久久久久久vr| 亚洲国产成人va在线观看天堂 | 中文字幕高清不卡| 欧美日韩精品专区| 成人av网站在线| 激情欧美日韩一区二区| 亚洲高清视频在线| 亚洲欧美另类久久久精品| 久久尤物电影视频在线观看| 欧美亚洲国产bt| 99精品欧美一区| 国产精品羞羞答答xxdd| 久久国产成人午夜av影院| 一区二区三区在线不卡| 国产精品美女久久福利网站| 久久麻豆一区二区| 3atv一区二区三区| 欧美三级日本三级少妇99| 91色视频在线| 99国产麻豆精品| 成人午夜精品在线| 国产福利一区二区三区| 韩日av一区二区| 久久精品国产亚洲a| 乱中年女人伦av一区二区| 偷拍亚洲欧洲综合| 亚洲国产精品人人做人人爽| 亚洲美女屁股眼交3| 一色屋精品亚洲香蕉网站| 欧美国产禁国产网站cc| 国产人成一区二区三区影院| 精品国产一区二区三区不卡| 日韩欧美二区三区| 精品三级在线看| 2023国产精品自拍| 精品国内片67194| 久久午夜羞羞影院免费观看| 欧美sm美女调教| 久久综合久久鬼色中文字| 精品黑人一区二区三区久久| 久久久久国产一区二区三区四区| www激情久久| 中文在线资源观看网站视频免费不卡| 国产午夜精品一区二区三区视频| 2023国产精华国产精品| 国产午夜久久久久| 日韩毛片视频在线看| 一区二区三区在线观看国产| 亚洲综合一区二区| 免费人成精品欧美精品 | 国产精品99久久久久久久vr| 国产成人综合亚洲91猫咪| 成人小视频免费观看| 色综合天天综合在线视频| 在线影院国内精品| 日韩欧美一卡二卡| 国产精品午夜春色av| 亚洲精品视频在线| 日本亚洲电影天堂| 国产suv精品一区二区6| 一本久久综合亚洲鲁鲁五月天 | 日韩三级视频在线观看| 久久影院午夜论| 中文字幕制服丝袜成人av| 亚洲一区二区视频在线观看| 日韩av在线播放中文字幕| 国产精品综合av一区二区国产馆| av一区二区三区黑人| 欧美男女性生活在线直播观看| 欧美大片日本大片免费观看| 欧美激情一区三区| 天天综合网天天综合色| 国产精品一区免费视频| 欧美亚洲高清一区二区三区不卡| 日韩久久久精品| 综合欧美一区二区三区| 丝袜亚洲另类欧美综合| 国产成人三级在线观看| 日本道精品一区二区三区| 日韩欧美成人激情| 一区二区三区在线播放| 国产精品一线二线三线精华| 欧美少妇性性性| 国产女人18水真多18精品一级做| 亚洲国产另类av| 国产一区二区三区av电影 | 91精品国产综合久久精品性色| 精品国产乱码91久久久久久网站| 中文字幕一区二区三| 美国精品在线观看| 色菇凉天天综合网| 久久久综合九色合综国产精品| 亚洲综合在线观看视频| 国产精品996| 欧美一区二区三区婷婷月色| 国产精品久久久久久久裸模| 日本va欧美va欧美va精品| 日本电影亚洲天堂一区| 亚洲国产精品二十页| 蜜臀av在线播放一区二区三区| 91黄色激情网站| 中文字幕国产一区| 国产美女视频91| 91精品国产一区二区| 亚洲最大的成人av| 9i在线看片成人免费| 久久久国际精品| 国产一区二区三区四| 欧美v日韩v国产v| 欧美私模裸体表演在线观看| www激情久久| 日韩国产成人精品| 欧美男男青年gay1069videost| 国产精品乱码人人做人人爱 | 精品国产成人系列| 精品国产一区二区三区不卡| 香蕉影视欧美成人| 日韩精品电影一区亚洲| 精品国产精品网麻豆系列| 91丨九色丨蝌蚪丨老版| 国产亚洲精久久久久久| 激情综合五月天| 日韩美女一区二区三区| 热久久一区二区| 欧美一区二区三区播放老司机| 亚洲成人自拍偷拍| 欧美人xxxx| 日韩国产精品91| 欧美mv和日韩mv的网站| 久久精品国产精品亚洲综合| 日韩精品专区在线影院重磅| 秋霞午夜鲁丝一区二区老狼| 91精品久久久久久久91蜜桃| 青青草原综合久久大伊人精品优势| 国产一区二区精品在线观看| 亚洲一区二区三区视频在线 | 亚洲综合男人的天堂| 丁香网亚洲国际| 久久一区二区三区国产精品| 极品少妇xxxx精品少妇偷拍| 精品福利在线导航| 国产美女视频91| 国产欧美日韩另类一区| 国产不卡视频一区二区三区| 中文字幕成人网| 一本一道综合狠狠老| 亚洲国产成人精品视频| 日韩午夜激情电影| 国产精品2024| 亚洲同性gay激情无套| 在线一区二区三区| 午夜a成v人精品| 精品国产成人系列| 99视频国产精品| 亚洲国产欧美一区二区三区丁香婷 | 日韩精品一卡二卡三卡四卡无卡| 欧美一区二区三区人| 国产一区二区h| 亚洲婷婷在线视频| 91精品国产综合久久久久| 国产精品自在在线| 一区二区三区不卡视频| 欧美高清hd18日本| 国产精品一区不卡| 亚洲国产精品欧美一二99| 欧美xfplay| 色婷婷久久一区二区三区麻豆| 一区二区激情视频| 欧美成人精品高清在线播放| 高潮精品一区videoshd| 一区二区三区在线视频免费| 日韩亚洲欧美一区二区三区| 国产成人av一区二区三区在线观看| 亚洲欧美韩国综合色| 欧美一卡在线观看| av男人天堂一区| 日韩av一区二区三区| 中文字幕二三区不卡| 91精品国产综合久久香蕉麻豆| 成人精品视频网站| 肉丝袜脚交视频一区二区| 国产亚洲短视频| 91 com成人网| 成人av中文字幕| 奇米四色…亚洲| 一区二区三区在线视频观看58| 久久这里只有精品视频网| 欧美色窝79yyyycom| 国产盗摄女厕一区二区三区| 亚洲mv在线观看| 国产日韩欧美综合一区| 制服丝袜成人动漫| 91看片淫黄大片一级在线观看| 久久99精品久久久久久久久久久久| 亚洲精品视频在线看|