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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? afxsock.h

?? vc++網(wǎng)絡(luò)編程教程的源碼。可能對(duì)使用vc網(wǎng)絡(luò)編程的有用。
?? H
字號(hào):
// This is a part of the Microsoft Foundation Classes C++ library.
// Copyright (C) 1992-1998 Microsoft Corporation
// All rights reserved.
//
// This source code is only intended as a supplement to the
// Microsoft Foundation Classes Reference and related
// electronic documentation provided with the library.
// See these sources for detailed information regarding the
// Microsoft Foundation Classes product.

#ifndef __AFXSOCK_H__
#define __AFXSOCK_H__

#ifdef _AFX_NO_SOCKET_SUPPORT
	#error Windows Sockets classes not supported in this library variant.
#endif

#ifndef __AFXWIN_H__
	#include <afxwin.h>
#endif

#ifndef _WINSOCKAPI_
	#include <winsock2.h>
#endif

#ifdef _AFX_MINREBUILD
#pragma component(minrebuild, off)
#endif
#ifndef _AFX_FULLTYPEINFO
#pragma component(mintypeinfo, on)
#endif

#ifndef _AFX_NOFORCE_LIBS

/////////////////////////////////////////////////////////////////////////////
// Win32 libraries

#ifdef _AFXDLL
	#if defined(_DEBUG) && !defined(_AFX_MONOLITHIC)
		#ifndef _UNICODE
			#pragma comment(lib, "mfcn42d.lib")
		#else
			#pragma comment(lib, "mfcn42ud.lib")
		#endif
	#endif
#endif

#pragma comment(lib, "wsock32.lib")

#endif //!_AFX_NOFORCE_LIBS

/////////////////////////////////////////////////////////////////////////////

#ifdef _AFX_PACKING
#pragma pack(push, _AFX_PACKING)
#endif

/////////////////////////////////////////////////////////////////////////////
// AFXSOCK - MFC support for Windows Sockets

// Classes declared in this file

	// CObject
		class CAsyncSocket; // Async Socket implementation and
							// base class for Synchronous Socket
			class CSocket;  // Synchronous Socket

	// CFile
		class CSocketFile; // Used with CSocket and CArchive for
						   // streaming objects on sockets.

/////////////////////////////////////////////////////////////////////////////

// AFXDLL support
#undef AFX_DATA
#define AFX_DATA AFX_NET_DATA

/////////////////////////////////////////////////////////////////////////////
// CSocketWnd -- internal use only
//  Implementation for sockets notification callbacks.
//  Future versions of MFC may or may not include this exact class.

class CSocketWnd : public CWnd
{
// Construction
public:
	CSocketWnd();

protected:
	//{{AFX_MSG(CSocketWnd)
	LRESULT OnSocketNotify(WPARAM wParam, LPARAM lParam);
	LRESULT OnSocketDead(WPARAM wParam, LPARAM lParam);
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

/////////////////////////////////////////////////////////////////////////////
// CAsyncSocket

class CAsyncSocket : public CObject
{
	DECLARE_DYNAMIC(CAsyncSocket);
private:
	CAsyncSocket(const CAsyncSocket& rSrc);    // no implementation
	void operator=(const CAsyncSocket& rSrc);  // no implementation

// Construction
public:
	CAsyncSocket();
	BOOL Create(UINT nSocketPort = 0, int nSocketType=SOCK_STREAM,
		long lEvent = FD_READ | FD_WRITE | FD_OOB | FD_ACCEPT | FD_CONNECT | FD_CLOSE,
		LPCTSTR lpszSocketAddress = NULL);

// Attributes
public:
	SOCKET m_hSocket;

	operator SOCKET() const;
	BOOL Attach(SOCKET hSocket, long lEvent =
		FD_READ | FD_WRITE | FD_OOB | FD_ACCEPT | FD_CONNECT | FD_CLOSE);
	SOCKET Detach();

	BOOL GetPeerName(CString& rPeerAddress, UINT& rPeerPort);
	BOOL GetPeerName(SOCKADDR* lpSockAddr, int* lpSockAddrLen);

	BOOL GetSockName(CString& rSocketAddress, UINT& rSocketPort);
	BOOL GetSockName(SOCKADDR* lpSockAddr, int* lpSockAddrLen);

	BOOL SetSockOpt(int nOptionName, const void* lpOptionValue,
		int nOptionLen, int nLevel = SOL_SOCKET);
	BOOL GetSockOpt(int nOptionName, void* lpOptionValue,
		int* lpOptionLen, int nLevel = SOL_SOCKET);

	static CAsyncSocket* PASCAL FromHandle(SOCKET hSocket);
	static int PASCAL GetLastError();

// Operations
public:

	virtual BOOL Accept(CAsyncSocket& rConnectedSocket,
		SOCKADDR* lpSockAddr = NULL, int* lpSockAddrLen = NULL);

	BOOL Bind(UINT nSocketPort, LPCTSTR lpszSocketAddress = NULL);
	BOOL Bind (const SOCKADDR* lpSockAddr, int nSockAddrLen);

	virtual void Close();

	BOOL Connect(LPCTSTR lpszHostAddress, UINT nHostPort);
	BOOL Connect(const SOCKADDR* lpSockAddr, int nSockAddrLen);

	BOOL IOCtl(long lCommand, DWORD* lpArgument);

	BOOL Listen(int nConnectionBacklog=5);

	virtual int Receive(void* lpBuf, int nBufLen, int nFlags = 0);

	int ReceiveFrom(void* lpBuf, int nBufLen,
		CString& rSocketAddress, UINT& rSocketPort, int nFlags = 0);
	int ReceiveFrom(void* lpBuf, int nBufLen,
		SOCKADDR* lpSockAddr, int* lpSockAddrLen, int nFlags = 0);

	enum { receives = 0, sends = 1, both = 2 };
	BOOL ShutDown(int nHow = sends);

	virtual int Send(const void* lpBuf, int nBufLen, int nFlags = 0);

	int SendTo(const void* lpBuf, int nBufLen,
		UINT nHostPort, LPCTSTR lpszHostAddress = NULL, int nFlags = 0);
	int SendTo(const void* lpBuf, int nBufLen,
		const SOCKADDR* lpSockAddr, int nSockAddrLen, int nFlags = 0);

	BOOL AsyncSelect(long lEvent =
		FD_READ | FD_WRITE | FD_OOB | FD_ACCEPT | FD_CONNECT | FD_CLOSE);

// Overridable callbacks
protected:
	virtual void OnReceive(int nErrorCode);
	virtual void OnSend(int nErrorCode);
	virtual void OnOutOfBandData(int nErrorCode);
	virtual void OnAccept(int nErrorCode);
	virtual void OnConnect(int nErrorCode);
	virtual void OnClose(int nErrorCode);

// Implementation
public:
	virtual ~CAsyncSocket();

	static CAsyncSocket* PASCAL LookupHandle(SOCKET hSocket, BOOL bDead = FALSE);
	static void PASCAL AttachHandle(SOCKET hSocket, CAsyncSocket* pSocket, BOOL bDead = FALSE);
	static void PASCAL DetachHandle(SOCKET hSocket, BOOL bDead = FALSE);
	static void PASCAL KillSocket(SOCKET hSocket, CAsyncSocket* pSocket);
	static void PASCAL DoCallBack(WPARAM wParam, LPARAM lParam);

	BOOL Socket(int nSocketType=SOCK_STREAM, long lEvent =
		FD_READ | FD_WRITE | FD_OOB | FD_ACCEPT | FD_CONNECT | FD_CLOSE,
		int nProtocolType = 0, int nAddressFormat = PF_INET);

#ifdef _DEBUG
	virtual void AssertValid() const;
	virtual void Dump(CDumpContext& dc) const;
#endif

protected:
	friend class CSocketWnd;

	virtual BOOL ConnectHelper(const SOCKADDR* lpSockAddr, int nSockAddrLen);
	virtual int ReceiveFromHelper(void* lpBuf, int nBufLen,
		SOCKADDR* lpSockAddr, int* lpSockAddrLen, int nFlags);
	virtual int SendToHelper(const void* lpBuf, int nBufLen,
		const SOCKADDR* lpSockAddr, int nSockAddrLen, int nFlags);
};

/////////////////////////////////////////////////////////////////////////////
// CSocket

class CSocket : public CAsyncSocket
{
	DECLARE_DYNAMIC(CSocket);
private:
	CSocket(const CSocket& rSrc);         // no implementation
	void operator=(const CSocket& rSrc);  // no implementation

// Construction
public:
	CSocket();
	BOOL Create(UINT nSocketPort = 0, int nSocketType=SOCK_STREAM,
		LPCTSTR lpszSocketAddress = NULL);

// Attributes
public:
	BOOL IsBlocking();
	static CSocket* PASCAL FromHandle(SOCKET hSocket);
	BOOL Attach(SOCKET hSocket);

// Operations
public:
	void CancelBlockingCall();

// Overridable callbacks
protected:
	virtual BOOL OnMessagePending();

// Implementation
public:
	int m_nTimeOut;

	virtual ~CSocket();

	static int PASCAL ProcessAuxQueue();

	virtual BOOL Accept(CAsyncSocket& rConnectedSocket,
		SOCKADDR* lpSockAddr = NULL, int* lpSockAddrLen = NULL);
	virtual void Close();
	virtual int Receive(void* lpBuf, int nBufLen, int nFlags = 0);
	virtual int Send(const void* lpBuf, int nBufLen, int nFlags = 0);

	int SendChunk(const void* lpBuf, int nBufLen, int nFlags);

protected:
	friend class CSocketWnd;

	BOOL* m_pbBlocking;
	int m_nConnectError;

	virtual BOOL ConnectHelper(const SOCKADDR* lpSockAddr, int nSockAddrLen);
	virtual int ReceiveFromHelper(void* lpBuf, int nBufLen,
		SOCKADDR* lpSockAddr, int* lpSockAddrLen, int nFlags);
	virtual int SendToHelper(const void* lpBuf, int nBufLen,
		const SOCKADDR* lpSockAddr, int nSockAddrLen, int nFlags);

	static void PASCAL AuxQueueAdd(UINT message, WPARAM wParam, LPARAM lParam);

	virtual BOOL PumpMessages(UINT uStopFlag);

#ifdef _DEBUG
	virtual void AssertValid() const;
	virtual void Dump(CDumpContext& dc) const;
#endif
};

/////////////////////////////////////////////////////////////////////////////
// CSocketFile

class CSocketFile : public CFile
{
	DECLARE_DYNAMIC(CSocketFile)
public:
//Constructors
	CSocketFile(CSocket* pSocket, BOOL bArchiveCompatible = TRUE);

// Implementation
public:
	CSocket* m_pSocket;
	BOOL m_bArchiveCompatible;

	virtual ~CSocketFile();

#ifdef _DEBUG
	virtual void AssertValid() const;
	virtual void Dump(CDumpContext& dc) const;
#endif
	virtual UINT Read(void* lpBuf, UINT nCount);
	virtual void Write(const void* lpBuf, UINT nCount);
	virtual void Close();

// Unsupported APIs
	virtual BOOL Open(LPCTSTR lpszFileName, UINT nOpenFlags, CFileException* pError = NULL);
	virtual CFile* Duplicate() const;
	virtual DWORD GetPosition() const;
	virtual LONG Seek(LONG lOff, UINT nFrom);
	virtual void SetLength(DWORD dwNewLen);
	virtual DWORD GetLength() const;
	virtual void LockRange(DWORD dwPos, DWORD dwCount);
	virtual void UnlockRange(DWORD dwPos, DWORD dwCount);
	virtual void Flush();
	virtual void Abort();
};

/////////////////////////////////////////////////////////////////////////////
// Global functions

BOOL AFXAPI AfxSocketInit(WSADATA* lpwsaData = NULL);
void AFXAPI AfxSocketTerm();

/////////////////////////////////////////////////////////////////////////////
// Inline function declarations

#ifdef _AFX_PACKING
#pragma pack(pop)
#endif

#ifdef _AFX_ENABLE_INLINES
#define _AFXSOCK_INLINE AFX_INLINE
#include <afxsock.inl>
#undef _AFXSOCK_INLINE
#endif

#undef AFX_DATA
#define AFX_DATA

#ifdef _AFX_MINREBUILD
#pragma component(minrebuild, on)
#endif
#ifndef _AFX_FULLTYPEINFO
#pragma component(mintypeinfo, off)
#endif

#endif // __AFXSOCK_H__

/////////////////////////////////////////////////////////////////////////////

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区四区精品在线视频| 日韩精品影音先锋| 成人免费看的视频| 成人av小说网| 成人伦理片在线| 91性感美女视频| 色88888久久久久久影院按摩| 美国三级日本三级久久99| 亚洲v中文字幕| 日本女人一区二区三区| 久久91精品国产91久久小草| 一区二区欧美精品| 亚洲123区在线观看| 天堂精品中文字幕在线| 国产精品久久久久桃色tv| 国产欧美日产一区| 这里只有精品99re| 久久一区二区三区四区| 欧美激情中文字幕一区二区| 亚洲视频狠狠干| 亚洲一区二区av电影| 欧美国产精品劲爆| 午夜激情综合网| 亚洲精品少妇30p| 丝袜脚交一区二区| 成人av动漫网站| 在线中文字幕不卡| 精品国产成人系列| 中文字幕亚洲一区二区av在线 | 国产成人在线视频网址| 成人免费高清视频| 欧美一区二区女人| 1000部国产精品成人观看| 一区二区三区欧美| 亚洲精品乱码久久久久久| 五月天网站亚洲| 久久国产精品无码网站| 99天天综合性| 白白色亚洲国产精品| 欧美一区二区女人| 欧美亚洲一区三区| 国产欧美一区二区三区网站 | 欧美日韩成人在线| 中文字幕av一区二区三区高| 天天综合色天天综合| 丁香婷婷综合激情五月色| 欧美色倩网站大全免费| 欧美高清在线精品一区| 蜜臀精品一区二区三区在线观看| 国产.欧美.日韩| 中文字幕一区av| 在线欧美日韩精品| 五月激情综合色| 欧美狂野另类xxxxoooo| 秋霞电影网一区二区| 日韩欧美国产系列| 久久97超碰色| 国产精品久久99| 91黄色小视频| 美女视频免费一区| 中文字幕欧美日本乱码一线二线| k8久久久一区二区三区| 一级精品视频在线观看宜春院| 欧美日本在线看| 国产二区国产一区在线观看| 《视频一区视频二区| 欧美日韩中文一区| 国产精品一区三区| 亚洲国产视频一区| 久久久久久久久久久99999| 波多野结衣欧美| 天堂蜜桃一区二区三区| 久久人人超碰精品| 91蜜桃免费观看视频| 美女脱光内衣内裤视频久久影院| 中文av一区特黄| 欧美高清性hdvideosex| 福利91精品一区二区三区| 亚洲观看高清完整版在线观看| 欧美电影免费观看高清完整版在线| 不卡欧美aaaaa| 麻豆精品视频在线观看| 自拍av一区二区三区| 日韩一区二区免费在线电影| 91天堂素人约啪| 激情综合网av| 亚洲福中文字幕伊人影院| 国产清纯美女被跳蛋高潮一区二区久久w| 91麻豆免费看片| 国产精品888| 日韩高清一级片| 亚洲免费观看视频| 日本一区二区三区四区在线视频| 欧美精品777| 欧美在线观看视频一区二区 | 欧美一级生活片| 色国产精品一区在线观看| 激情综合色丁香一区二区| 一区二区三区四区国产精品| 欧美国产日韩a欧美在线观看| 欧美一区二区三区在线电影 | 亚洲日本韩国一区| 久久综合九色综合欧美98| 欧美色图在线观看| 国产一区二区91| 久久超级碰视频| 日韩高清在线观看| 五月婷婷久久综合| 午夜不卡av免费| 亚洲成人三级小说| 伊人色综合久久天天人手人婷| 国产精品的网站| 国产欧美日韩另类一区| 久久久久久97三级| 欧美日韩极品在线观看一区| 播五月开心婷婷综合| 国产成人精品免费| 国产伦精一区二区三区| 免费人成精品欧美精品| 亚洲国产一二三| 五月综合激情婷婷六月色窝| 婷婷成人激情在线网| 亚洲成a人v欧美综合天堂下载| 一区二区免费在线| 亚洲电影在线免费观看| 午夜视频久久久久久| 日本不卡视频在线观看| 香蕉av福利精品导航| 亚洲午夜一区二区| 轻轻草成人在线| 国产精品亚洲а∨天堂免在线| 国产suv精品一区二区6| 成人自拍视频在线| 色综合色综合色综合色综合色综合 | 色婷婷精品久久二区二区蜜臂av | 99久久免费视频.com| 99r国产精品| 91婷婷韩国欧美一区二区| 色婷婷av一区二区三区大白胸| 色素色在线综合| 欧洲一区在线观看| 51精品秘密在线观看| 欧美一区二区福利视频| 91精品蜜臀在线一区尤物| 99久久婷婷国产综合精品电影| 色综合久久综合网欧美综合网| 欧美影院午夜播放| 欧美日产在线观看| 精品国产一区二区三区av性色| 精品久久久久久久人人人人传媒| 日本一区二区三区视频视频| 国产精品美女久久久久高潮| 亚洲男同1069视频| 奇米影视一区二区三区| 高清成人在线观看| 一本到不卡免费一区二区| 制服.丝袜.亚洲.另类.中文| 久久久欧美精品sm网站| 国产精品成人免费在线| 天堂久久一区二区三区| 成人一区二区在线观看| 国产一区二区三区高清播放| 懂色av一区二区夜夜嗨| 欧美天堂一区二区三区| 欧美一区二区视频观看视频| 国产精品久久午夜| 日本人妖一区二区| 99国产精品久久| 亚洲精品一区二区三区福利| 一区二区三区精品视频在线| 国内精品嫩模私拍在线| 色综合天天狠狠| 欧美一区二区三区喷汁尤物| 国产精品久久久爽爽爽麻豆色哟哟| 午夜精品久久久久久久| 国产伦精品一区二区三区免费迷| 成人高清免费在线播放| 丰满白嫩尤物一区二区| 日韩一区二区在线观看视频| 一区二区三区在线观看国产| 亚洲最大色网站| 日韩国产欧美在线视频| 欧美三级中文字幕在线观看| 国产精品久久久爽爽爽麻豆色哟哟 | 欧美亚洲国产一区二区三区va| 国产亚洲欧美日韩俺去了| 一区二区三区四区中文字幕| 成av人片一区二区| 久久品道一品道久久精品| 日本不卡一区二区三区高清视频| 91国偷自产一区二区三区观看| 国产女人水真多18毛片18精品视频| 日本午夜精品视频在线观看 | 国产成人免费9x9x人网站视频| 日韩视频一区二区在线观看| 亚洲欧美激情插| 99视频超级精品| 亚洲婷婷综合久久一本伊一区| 麻豆精品在线播放| 欧美人xxxx|