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

📄 wsocket.h

📁 Visual C++串口通信编程实践(包括串口调试助手源代码)
💻 H
字号:
//////////////////////////////////////////////////////////////////////
//WYD's Socket
//类作者SoFantasy  EMail: SoFantasy@21cn.com
////////////////////////////////////////////////////////////////////////

#if !defined(_1974__WSOCKET_H__09_29_)
#define _1974__WSOCKET_H__09_29_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "winsock2.h"

typedef void (CALLBACK* DEALPROC)(SOCKET s, int ServerPort, const char *ClientIP);

class CWSocket  
{
public:
	
//variable
	int		err;

//Function
	int GetError();
	SOCKET GetSocket();
	SOCKET GetServerSocket();
	BOOL StopServer();
	BOOL StartServer(DEALPROC lpDealFunc);
	SOCKET Listen(char *ClientIP = NULL);
	BOOL CreateServer(int port, int backlog);
	int ReadData(char FAR* buf, int len, int timeout);
	int SendData(const char FAR* buf, int len, int timeout);
	BOOL IsSockConnected(SOCKET s);
	BOOL Connection(LPCSTR pstrHost, int nPort);	
	void Close();
	void CloseServer();
	operator=(SOCKET s);
	CWSocket(SOCKET s);
	CWSocket();
	virtual ~CWSocket();

protected:
	
//variable
	SOCKET  m_sSocket;
	BOOL	m_bConnected;
	BOOL	m_bNeedClose;

	SOCKET  m_sServer;
	BOOL	m_bListened;
	int		m_nServerPort;
	BOOL	m_bNeedCloseServer;

	BOOL	m_bWSAStartup;

	HANDLE	m_hServerThread;

//Function
	static DWORD CALLBACK TimeoutControl(LPVOID lpParm);
	static DWORD CALLBACK ServerProc(LPVOID lpParm);
	static DWORD CALLBACK DealProc(LPVOID lpParm);

 	struct TPARA
	{
		int		OutTime;
		SOCKET	s;
		BOOL	*pbConnected;
		BOOL bExit;
		BOOL IsExit;
	};

	struct SERVERPARA
	{
		SOCKET		s;
		int			port;
		DEALPROC	lpDealFunc;
	};

	struct DEALPARA
	{
		SOCKET		s;
		int			port;
		char		IP[32];
		DEALPROC	lpDealFunc;
	};
};


#endif // !defined(_1974__WSOCKET_H__09_29_)

⌨️ 快捷键说明

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