rvsocket.h
来自「h.248协议源码」· C头文件 代码 · 共 99 行
H
99 行
/*****************************************************************************
Filename : rvsocket.h
Description: Socket 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 <stddef.h>
#include "rvtypes.h"
#include "rvinet.h"
#include "rvhost.h"
#include "rvsocketaddr.h"
#if defined(RV_SOCKETS_WSOCK)
typedef SOCKET RvSocket;
#else
typedef int RvSocket;
#endif
#if defined(__cplusplus)
extern "C" {
#endif
/* Generic */
#define rvSocketConstructCopy(d, s, a) rvDefaultConstructCopy((d), (s), (a))
void rvSocketDestruct(RvSocket* s);
#define rvSocketGetAllocator(x) rvDefaultGetAllocator(x)
#define rvSocketEqual(a, b) rvDefaultEqual((a), (b))
RvBool rvSocketBind(RvSocket* s, const RvSocketAddr* localAddr);
RvBool rvSocketBindAnyPort(RvSocket* s, RvSocketAddr* localAddr);
RvSocketAddr* rvSocketGetLocalAddr(RvSocket* s, OUT RvSocketAddr* addr);
RvInetPort rvSocketGetPort(RvSocket* s);
/* Socket option methods */
RvBool rvSocketSetTypeOfService(RvSocket* s, RvUint8 tos);
RvBool rvSocketGetTypeOfService(RvSocket* s, RvUint8* tos);
RvBool rvSocketSetRecvBufferSize(RvSocket* s, int size);
RvBool rvSocketGetRecvBufferSize(RvSocket* s, int* size);
RvBool rvSocketSetSendBufferSize(RvSocket* s, int size);
RvBool rvSocketGetSendBufferSize(RvSocket* s, int* size);
/* Multicast socket options */
RvBool rvSocketSetMulticastLoop(RvSocket* s, RvBool loop);
RvBool rvSocketGetMulticastLoop(RvSocket* s, RvBool* loop);
RvBool rvSocketSetMulticastHops(RvSocket* s, int hops);
RvBool rvSocketGetMulticastHops(RvSocket* s, int* hops);
RvBool rvSocketJoinMulticastGroup(RvSocket* s, RvUint32 mcastip, RvUint32 ipaddr);
RvBool rvSocketLeaveMulticastGroup(RvSocket* s, RvUint32 mcastip, RvUint32 ipaddr);
RvBool rvSocketSetMulticastInterface(RvSocket* s, RvUint32 ipaddr);
/* UDP */
#define RV_UDP_MAXLENGTH 65000
RvSocket* rvSocketConstructUdp(RvSocket* s, RvInetPort port);
RvSocket* rvSocketConstructUdpAnyPort(RvSocket* s);
RvSocket* rvSocketConstructUdpEx(RvSocket* s, const RvSocketAddr *addressPtr);
int rvSocketRecvFrom(RvSocket* s, void* pkt, int len,
OUT RvSocketAddr* fromAddr);
RvBool rvSocketSendTo(RvSocket* s, const void* pkt, int len,
const RvSocketAddr* toAddr);
RvBool rvSocketSendToInet(RvSocket* s, const void* pkt, int len,
RvHost* h, size_t n, RvInetPort port);
RvBool rvSocketSendToInetEx(RvSocket* s, const void* pkt, int len,
const char* dnsOrIp, RvInetPort port);
/* TCP */
RvSocket* rvSocketConstructTcpActive(RvSocket* s, RvInetPort port, RvSocketAddr* addr);
RvSocket* rvSocketConstructTcpPassive(RvSocket* s, RvInetPort port);
RvBool rvSocketGetRemoteAddr(RvSocket* s, OUT RvSocketAddr* addr);
RvBool rvSocketAccept(RvSocket* s, OUT RvSocket* socket);
int rvSocketRecv(RvSocket* s, void* pkt, int len);
RvBool rvSocketSend(RvSocket* s, void* pkt, int len);
/* Aliases to solve naming problem */
#define RvSocketConstructCopy(d, s, a) rvSocketConstructCopy((d), (s), (a))
#define RvSocketDestruct(x) rvSocketDestruct(x)
#define RvSocketGetAllocator(x) rvSocketGetAllocator(x)
#define RvSocketEqual(a, b) rvSocketEqual((a), (b))
#if defined(__cplusplus)
}
#endif
#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?