📄 rvsocket_.h
字号:
/*****************************************************************************
Filename : rvsocket_.h
Description: Socket porting interface declaration.
******************************************************************************
Copyright (c) 1999 RADVision Inc.
******************************************************************************
NOTICE:
This document contains information that is proprietary to RADVision Inc.
No part of this publication may be reproduced in any form whatsoever
without written prior approval by RADVision Inc.
RADVision Inc. reserves the right to revise this publication and make
changes without obligation to notify any person of such revisions or
changes.
******************************************************************************
$Revision:$
$Date:$
$Author: S. Cipolli$
*****************************************************************************/
#ifndef RV_SOCKET__H
#define RV_SOCKET__H
#include "rvplatform.h"
#include "rvsocket.h"
#include "rvsocketaddr.h"
RvBool rvSocketAccept_(RvSocket socket, RvSocket* cSocket, RvSocketAddr *addressPtr);
RvBool rvSocketGetSockName_(RvSocket socket, RvSocketAddr *addressPtr);
RvBool rvSocketGetPeerName_(RvSocket socket, RvSocketAddr *addressPtr);
int rvSocketRecvFrom_(RvSocket socket, void *buffer, size_t bufferLength, int flags, RvSocketAddr *addressPtr);
#if defined(RV_SOCKETS_BSD)
#if defined(RV_OS_OSE)
# include "inet.h"
#else
# include <sys/types.h>
# include <sys/socket.h>
# include <netinet/in.h>
# include <arpa/inet.h>
#if defined(RV_OS_VXWORKS)
#include <ioLib.h>
#endif
#endif
#define rvSocketOpen_(f, t, p) socket((f), (t), (p))
#define rvSocketClose_(s) close(s)
#define rvSocketBind_(s, a) bind((s), (struct sockaddr *)&(rvSocketAddrGetRawAddress(a)), rvSocketAddrGetLength(a))
#define rvSocketListen_(s, q) listen((s), (q))
#define rvSocketConnect_(s, a) connect((s), (struct sockaddr *)&(rvSocketAddrGetRawAddress(a)), rvSocketAddrGetLength(a))
#define rvSocketSendTo_(s, b, n, f, a ) sendto((s), (b), (n), (f),(struct sockaddr *)&(rvSocketAddrGetRawAddress(a)), rvSocketAddrGetLength(a))
#define rvSocketRecv_(s, b, n, f) recv((s), (b), (n), (f))
#define rvSocketSetSockOpt_(s, x, n, v, l) setsockopt((s), (x), (n), (v), (l))
#define rvSocketGetSockOpt_(s, x, n, v, l) getsockopt((s), (x), (n), (v), (l))
#if defined(RV_OS_OSE)
/* OSE changed only name of send function */
#define rvSocketSend_(s, b, n, f) inet_send((s), (b), (n), (f))
#else
#define rvSocketSend_(s, b, n, f) send((s), (b), (n), (f))
#endif
#if defined(RV_OS_REDHAT) || defined(RV_OS_SOLARIS)
int rvSocketBlock_(RvSocket socket);
int rvSocketUnblock_(RvSocket socket);
#elif defined(RV_OS_VXWORKS)
static unsigned long rv_blockoff = TRUE; /* hack used only for ioctlsocket macro below */
static unsigned long rv_blockon = FALSE;
#define rvSocketBlock_(s) ioctl((s), FIONBIO, (int)&rv_blockon)
#define rvSocketUnblock_(s) ioctl((s), FIONBIO, (int)&rv_blockoff)
#else
static unsigned long rv_blockoff = 1; /* hack used only for ioctlsocket macro below */
static unsigned long rv_blockon = 0;
#define rvSocketBlock_(s) ioctl((s), FIONBIO, &rv_blockon)
#define rvSocketUnblock_(s) ioctl((s), FIONBIO, &rv_blockoff)
#endif
#elif defined(RV_SOCKETS_WSOCK)
# include <windows.h>
#define rvSocketOpen_(f, t, p) socket((f), (t), (p))
#define rvSocketClose_(s) closesocket(s)
#define rvSocketBind_(s, a) bind((s), (struct sockaddr *)&(rvSocketAddrGetRawAddress(a)), rvSocketAddrGetLength(a))
#define rvSocketListen_(s, q) listen((s), (q))
#define rvSocketSendTo_(s, b, n, f, a) sendto((s),(b),(n),(f),(const struct sockaddr *)&(a)->address, rvSocketAddrGetLength(a))
#define rvSocketConnect_(s, a) connect((s), (struct sockaddr *)&(rvSocketAddrGetRawAddress(a)), rvSocketAddrGetLength(a))
#define rvSocketRecv_(s, b, n, f) recv((s), (b), (n), (f))
#define rvSocketSend_(s, b, n, f) send((s), (b), (n), (f))
#define rvSocketSetSockOpt_(s, x, n, v, l) setsockopt((s), (x), (n), (v), (l))
#define rvSocketGetSockOpt_(s, x, n, v, l) getsockopt((s), (x), (n), (v), (l))
static unsigned long rv_blockoff = 1; /* hack used only for ioctlsocket macro below */
static unsigned long rv_blockon = 0;
#define rvSocketBlock_(s) ioctlsocket((s), FIONBIO, &rv_blockon)
#define rvSocketUnblock_(s) ioctlsocket((s), FIONBIO, &rv_blockoff)
#elif defined(RV_SOCKETS_PSOS)
# include <pna.h>
# include "rvsharer.h"
#define rvSocketOpen_(f, t, p) rvSharerCreateSocket((f), (t), (p))
#define rvSocketClose_(s) rvSharerDestroySocket(s)
long rvSocketBind_(RvSocket socket, const RvSocketAddr *addressPtr);
long rvSocketListen_(RvSocket socket, int backlog);
long rvSocketConnect_(RvSocket socket, RvSocketAddr *addressPtr);
long rvSocketSendTo_(RvSocket socket, char *buf, int len, int flags, const RvSocketAddr *addressPtr);
long rvSocketSetSockOpt_(RvSocket socket, int level, int optname, char *optval, int optlen);
long rvSocketGetSockOpt_(RvSocket socket, int level, int optname, char *optval, int* optlen);
long rvSocketRecv_(RvSocket socket, char *buffer, int len, int flags);
long rvSocketSend_(RvSocket socket, char *buf, int len, int flags);
long rvSocketBlock_(RvSocket socket);
long rvSocketUnblock_(RvSocket socket);
#elif defined(RV_SOCKETS_NUCLEUS)
#include <nucleus.h>
#include <inc/nu_net.h>
#define SOCK_STREAM NU_TYPE_STREAM
#define SOCK_DGRAM NU_TYPE_DGRAM
#define rvSocketOpen_(f, t, p) NU_Socket((f), (t), (p))
#define rvSocketClose_(s) NU_Close_Socket(s)
#define rvSocketListen_(s, q) NU_Listen((s), (q))
#define rvSocketRecv_(s, b, n, f) NU_Recv((s), (b), (n), (f))
#define rvSocketSend_(s, b, n, f) NU_Send((s), (b), (n), (f))
#define rvSocketSetSockOpt_(s, x, n, v, l) NU_Setsockopt((s), (x), (n), (v), (l))
#define rvSocketGetSockOpt_(s, x, n, v, l) NU_Getsockopt((s), (x), (n), (v), (l))
#define rvSocketBlock_(s) NU_Fcntl((s), NU_SETFLAG, NU_BLOCK)
#define rvSocketUnblock_(s) NU_Fcntl((s), NU_SETFLAG, NU_FALSE)
int rvSocketBind_(RvSocket socket, const RvSocketAddr *addressPtr);
int rvSocketConnect_(RvSocket socket, const RvSocketAddr *addressPtr);
int rvSocketSendTo_(RvSocket socket, char *buf, int nbytes, int flags, const RvSocketAddr *toAddr);
#else
# error Unknown sockets implementation
#endif
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -