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

📄 vrssocket.h

📁 otl简单包装实现类,对数据库进行操作的,简单易用.
💻 H
字号:
/***************************************************************************                          VRSSocket.h  -  description                             -------------------    begin                : ?  3? 4 2003    copyright            : (C) 2003 by |??|    email                : |zl@foundermn.com| ***************************************************************************//*************************************************************************** *                                                                         * *   This program is free software; you can redistribute it and/or modify  * *   it under the terms of the GNU General Public License as published by  * *   the Free Software Foundation; either version 2 of the License, or     * *   (at your option) any later version.                                   * *                                                                         * ***************************************************************************///////////////////////////////////////////////////////////////////////#ifndef VRSSOCKET_H #define VRSSOCKET_H#include <stdio.h>#include <string>#include <sys/types.h>#include <sys/socket.h>#include <pthread.h>using namespace std;class VNetTS{public:	static void  PutString(char* Buf,char* Str,int Len);	static void  GetString(char* Buf,char* Str,int Len);	static unsigned long GetULong(unsigned char* Buf);	static unsigned short GetUShort(unsigned char* Buf);	static void SetULong(unsigned char* Buf,unsigned long Val);	static void SetUShort(unsigned char* Buf,unsigned short Val);};#define  INVALID_SOCKET  -1#define  SOCKET_ERROR    -1#define  FD_READ  	   0x01#define  FD_WRITE 	   0x02#define  FD_READWRITE  0x03#define  FD_NONE       0x04typedef  int  SOCKET;typedef  unsigned long  DWORD;typedef  unsigned int   UINT;typedef enum{RS_OK=0,RS_FAIL=-1,RS_TIMEOUT=-2} RsRetCode;class CRSSocket {public:// SockRet为socket函数返回值       typedef enum{	    SockSuccess=0,     //成功	    SockClose = 0,     // socket被关闭(recv,recvfrom)		SockTimeOut = 0,   // select 超时		SockInvalid=INVALID_SOCKET,  //无效socket		SockError=SOCKET_ERROR  //socket错误	} SockRetCode;protected:	SOCKET		m_socket;    	int			m_nSocketType;	struct sockaddr	   m_sockLocal;	struct sockaddr	   m_sockDest;	struct sockaddr    m_sockRecvFrom;	char        m_MulticastIp[20];public:	CRSSocket();	virtual ~CRSSocket();public:	void  Initialize();	int Create(int nSocketType = SOCK_DGRAM);	int CreateClient(char* Address,UINT Port,int nSocketType=SOCK_DGRAM,int BufSize=-1);	int CreateClient(char* Address,char* Port,int nSocketType=SOCK_DGRAM,int BufSize=-1 );	int CreateMulticast(char* Address,int Port,int BufSize=-1);	int Select(fd_set *readfds, fd_set *writefds=NULL,fd_set *exceptfds=NULL,long msec=0);	int SelectWait(long SEvent=FD_READ,long MSec=0);	int SetNonBlockMode(DWORD bBlock=1);	int GetUdpSize();	int Bind(char* localAddr, char* localPort);	int Bind(char* localAddr,int localPort);	int Connect(char* destAddr,char* destPort);	int Connect(char* destAddr,int destPort);	int Connect(char* destAddr,int destPort,long MSec);	int Listen(int BackLog);	SOCKET Accept(struct sockaddr *cliaddr,socklen_t *addrlen);	int    Accept(CRSSocket* rs);	void   SetSocket(SOCKET s);	int SendTo(char* pData, int nLen);	int RecvFrom(char* pData, int nLen);	int RecvFrom(char* pData, int nLen,int MSec);	int Recv(char* pData, int nLen);	int RecvPeek(char* pData, int nLen);	int Send(char* pData, int nLen);	int Writen(char* pData,int nLen);	int Writen(char* pData,int nLen,int MSec);	int Readn(char* pData,int nLen);	int Readn(char* pData,int nLen,int MSec);	int ReadLine(char* pData,int MaxLen);	int ReadLine(char* pData,int MaxLen,int MSec);	void Close();	void CloseMulticast();    int GetLastSocketError ();	int GetNetAddr(sockaddr *sa,char *addr,int *port);	int GetLocalAddr(char *addr,int *port);	int GetDestAddr(char *addr,int *port);	int GetRecvFromAddr(char *addr,int *port);	SOCKET GetSocket();    int GetSockOpt(int level,int optname,char *optval,int *optlen);    int SetSockOpt(int level,int optname,const char *optval,int optlen);    int SetRecvBufSize(int bufsize);	int SetSendBufSize(int bufsize);	int SetLinger(int OnOff,int LSec);	int SetReUseAddr(bool bReUse);	int SetMulticastTtl(unsigned char Ttl=1);	int SetMulticastLoop(unsigned char Loop=1);		int SetTcpNoDelay(bool bNoDelay);	int SetDestAddr(char* destIP, char* destPort);	int SetDestAddr(char* destIP, short destPort);	int SetDestAddr(long destIP, short destPort);	int SetDestNetAddr(long destIP, short destPort);	int SetDestAddr(struct sockaddr* addr);	int SetLocalAddr(struct sockaddr* addr);};#endif

⌨️ 快捷键说明

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