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

📄 ospossys.h

📁 mgcp协议源代码。支持多种编码:g711
💻 H
📖 第 1 页 / 共 2 页
字号:
    e = WSAGetLastError(); \    OSPM_DBG(e,("%s failed. %s\n", "recv", strerror(errno))); \}#define OSPM_SELECT(s,fr,fw,fe,t,e) { \    e = select(s,fr,fw,fe,t); \    OSPM_DBG((e == SOCKET_ERROR),("%s failed. %s\n", "select", strerror(errno))); \}#define OSPM_CONNECT(s,ip,pt,e) { \    struct sockaddr_in sin; \    sin.sin_family      = AF_INET; \    sin.sin_addr.s_addr = ip; \    sin.sin_port        = pt; \    e = connect(s, (struct sockaddr *)&sin, sizeof(struct sockaddr_in)); \    if(e != 0) { \      if(WSAGetLastError() == WSAEWOULDBLOCK){ \        e = OSPC_ERR_SOCK_CONN_IN_PROGRESS; \      } \      else { \        OSPM_DBG(e,("Warning: %s to %s failed. %d\n", "connect", inet_ntoa(sin.sin_addr), WSAGetLastError())); \      } \    } \}#define OSPM_INET_NTOA(ip, s) { \    struct sockaddr_in sin; \    sin.sin_family          = AF_INET; \    sin.sin_addr.s_addr     = ip; \    s = inet_ntoa(sin.sin_addr); \}#define OSPM_CLOSE(s,e) { \    e = closesocket(s); \    if (e) \        OSPM_DBG(WSAGetLastError(),("%s failed. %d\n", "closesocket", WSAGetLastError())); \}#define OSPM_SOCKET(s,e) { \    s = socket(AF_INET, SOCK_STREAM, 0); \    if (s == INVALID_SOCKET) \        e = OSPC_ERR_SOCK_CREATE_FAILED; \    OSPM_DBG(e,("%s failed. %d\n", "socket", WSAGetLastError())); \}#define OSPM_UDP_SOCKET(s,e) { \    s = socket(AF_INET, SOCK_DGRAM, 0); \    if (s == INVALID_SOCKET) \        e = OSPC_ERR_SOCK_CREATE_FAILED; \    OSPM_DBG(e,("%s failed. %d\n", "socket", WSAGetLastError())); \}#else/* -----------------------------*//* UNIX Sockets Macros          *//* -----------------------------*/#define OSPM_INITWINSOCK(e)      { }#define OSPM_CLEANUPWINSOCK()    { }#define OSPM_BLOCKIO(s,f,e) { \    if (f) { \        e = fcntl(s, F_SETFD, O_NONBLOCK); \        OSPM_DBG(e < 0,("%s failed. %s\n", "fcntl", strerror(errno))); \    } \    else { \        e = fcntl(s, F_SETFD, 0); \        OSPM_DBG(e < 0,("%s failed. %s\n", "fcntl", strerror(errno))); \    } \}/* wbr: changed gethostbyname_r() to gethostbyname(), remove cBuf[] */#define OSPM_GETHOSTBYNAME(h,ip,e) { \    struct hostent *pHost, sHostResult; \    struct sockaddr_in sSockAddr; \    char cBuf[512]; \    int Error; \    if ((pHost = gethostbyname((const char *)h)) \           == (struct hostent *)NULL) \    { \        e = Error; \	OSPM_DBG(e,("%s(%s) failed. %s\n", "gethostbyname", (const char*)h, strerror(errno))); \        ip = 0; \    } \    else { \        OSPM_MEMSET(&sSockAddr, 0, sizeof(sSockAddr)); \            OSPM_MEMCPY((char *)&sSockAddr.sin_addr, \            pHost->h_addr, pHost->h_length); \        ip = sSockAddr.sin_addr.s_addr; \    } \}#define OSPM_GETSOCKERR(h,e) { \    int err = 0, err_sz = sizeof(int); \    e = getsockopt(h->SockFd, SOL_SOCKET, SO_ERROR, (void *)&err, &err_sz); \    if (err != 0) e = OSPC_ERR_SOCK_RESET; \}#define OSPM_SEND(fd,n,b,l,e) { \    e = 0; \    errno = 0; \    n = send(fd, (char *)b, l, 0); \    e = errno; \    if (e == ENOTCONN || e == EPIPE || e == ECONNRESET) \        e = OSPC_ERR_SOCK_RESET; \    OSPM_DBG(e,("%s failed. %s\n", "send", strerror(errno))); \}#define OSPM_RECV(h,b,l,e) { \    e = 0; \    errno = 0; \    h->ByteCount = recv(h->SockFd, (char *)b, l, 0); \    e = errno; \    OSPM_DBG(e,("%s failed. %s\n", "recv", strerror(errno))); \}#define OSPM_SELECT(s,fr,fw,fe,t,e) { \    e = select(s,fr,fw,fe,t); \}#define OSPM_CONNECT(s,ip,pt,e) { \    struct sockaddr_in sin; \    sin.sin_family      = AF_INET; \    sin.sin_addr.s_addr = ip; \    sin.sin_port        = pt; \    e = connect(s, (struct sockaddr *)&sin, sizeof(struct sockaddr_in)); \    if(e != 0) { \      if(errno == EINPROGRESS){ \        e = OSPC_ERR_SOCK_CONN_IN_PROGRESS; \      } \      else { \        OSPM_DBG(e,("%s failed. %s\n", "connect", strerror(errno))); \      } \    } \}#define OSPM_INET_NTOA(ip, s) { \    struct in_addr sin; \    sin.s_addr     = ip; \    s = inet_ntoa(sin); \}#define OSPM_CLOSE(s,e) { \    e = close(s); \    OSPM_DBG(e,("%s failed. %s\n", "close", strerror(errno))); \}#define OSPM_SOCKET(s,e) { \    s = socket(AF_INET, SOCK_STREAM, 0); \    if (s < 0) \        e = OSPC_ERR_SOCK_CREATE_FAILED; \    OSPM_DBG(e,("%s failed. %s\n", "socket", strerror(errno))); \}#define OSPM_UDP_SOCKET(s,e) { \    s = socket(AF_INET, SOCK_DGRAM, 0); \    if (s < 0) \        e = OSPC_ERR_SOCK_CREATE_FAILED; \    OSPM_DBG(e,("%s failed. %s\n", "socket", strerror(errno))); \}#endif/* -------------------------------*//* Common Winsock/Sockets Macros  *//* -------------------------------*/#define OSPM_DISABLE_NAGLE(s,e) { \    int flag = 1; \    OSPM_SETSOCKOPT(s,IPPROTO_TCP, TCP_NODELAY, \        flag,sizeof(flag),e); \}#define OSPM_SETSOCKOPT(s,lev,opn,opv,opl,e) { \    e = setsockopt(s, lev, opn, \        (const char *)&opv, opl); \    OSPM_DBG(e,("%s failed. %s\n", "setsockopt", strerror(errno))); \}#define OSPM_INET_ADDR(host,ip) { \    if (!OSPPUtilIsDottedNumericIP(host)) \        ip = 0; \    else \    { \        ip = inet_addr(host); \        if (ip < 0) ip = 0; \    } \}#define OSPM_SHUTDOWN(s,h,e) { \    e = shutdown(s,h); \    OSPM_DBG(e,("%s failed. %s\n", "shutdown", strerror(errno))); \}/* * ============================================= * Char/String Manipulation Macros * ============================================= */#define OSPM_TOLOWER(c)             tolower(c)#define OSPM_STRCPY(s1,s2)          strcpy((s1), (s2))#define OSPM_STRCMP(s1,s2)          strcmp((s1), (s2))#define OSPM_STRNCMP(s1,s2,n)       strncmp((s1), (s2), (n))#define OSPM_STRLEN(s)              ((s != OSPC_OSNULL)? strlen(s) : 0)#define OSPM_STRNCAT(s1,s2,n)       strncat((s1), (s2), (n))#define OSPM_STRNCPY(s1,s2,n)       strncpy((char *)(s1), (const char *)(s2), (n))#define OSPM_STRNCASECMP(s1,s2,n)   strncasecmp((s1), (s2), (n))#define OSPM_STRTOUL(s1,a1,b)       strtoul((s1), (a1), (b))#define OSPM_STRSTR(s1,s2)          strstr((s1),(s2))#define OSPM_ATOF(s)                atof(s)#ifdef _WIN32#define OSPM_STRTOK(s,c, s2)        strtok(s,c)#else#define OSPM_STRTOK(s, c, s2)       strtok_r(s,c,s2)#endif/* * ============================================= * Miscellaneous Macros * ============================================= */#ifdef _WIN32#define OSPM_SLEEP(sec) { \    Sleep(sec * 1000); \}#define OSPM_POW(num, power, err){ \    struct _exception e; \    if(num == 1){ \        err = num;} \    else{ \        err = ((unsigned)pow((double)num, power)); \        if((_matherr(&e)) || (err == 1) || (err == 0)){ \            err = OSPC_ERR_POW; \        } \    } \}#define OSPM_ISNAN(num, flag) { \    flag = _isnan(num); \    }#define OSPM_ACCESS 	_access#else#define OSPM_POW(num, power, err){ \    if(num == 1){ \        err = num;} \    else{ \        err = pow(num, power); \        if((isnan(err)) || (err == -HUGE_VAL) || (err == +HUGE_VAL) || (err == 1) || (err == 0)){ \            err = OSPC_ERR_POW; \        } \    } \}#define OSPM_SLEEP(sec) sleep(sec)#define OSPM_ISNAN(num, flag) { \    flag = isnan(num); \    }#define OSPM_ACCESS 	access#endif#define OSPM_SET_FLAG_BIT(bitfield,bitmask,value) { \    if (value) \        bitfield |= bitmask; \    else \        bitfield &= ~(bitmask); \}#define OSPM_PRINTF     printf#define OSPM_SPRINTF    sprintf#define OSPM_CTIME      ctime#define OSPM_TIME       time#define OSPM_MODF       modf#define OSPM_CEIL       ceil#define OSPM_FLOOR      floor#define OSPM_GETENV     getenv/* 'uses' the argument */#define OSPM_ARGUSED(x) (x=x)#endif

⌨️ 快捷键说明

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