📄 vrssocket.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 + -