📄 sock.h
字号:
/* ***** BEGIN LICENSE BLOCK ***** * Source last modified: $Id: sock.h,v 1.2.8.3 2004/07/09 01:46:56 hubbe Exp $ * * Portions Copyright (c) 1995-2004 RealNetworks, Inc. All Rights Reserved. * * The contents of this file, and the files included with this file, * are subject to the current version of the RealNetworks Public * Source License (the "RPSL") available at * http://www.helixcommunity.org/content/rpsl unless you have licensed * the file under the current version of the RealNetworks Community * Source License (the "RCSL") available at * http://www.helixcommunity.org/content/rcsl, in which case the RCSL * will apply. You may also obtain the license terms directly from * RealNetworks. You may not use this file except in compliance with * the RPSL or, if you have a valid RCSL with RealNetworks applicable * to this file, the RCSL. Please see the applicable RPSL or RCSL for * the rights, obligations and limitations governing use of the * contents of the file. * * Alternatively, the contents of this file may be used under the * terms of the GNU General Public License Version 2 or later (the * "GPL") in which case the provisions of the GPL are applicable * instead of those above. If you wish to allow use of your version of * this file only under the terms of the GPL, and not to allow others * to use your version of this file under the terms of either the RPSL * or RCSL, indicate your decision by deleting the provisions above * and replace them with the notice and other provisions required by * the GPL. If you do not delete the provisions above, a recipient may * use your version of this file under the terms of any one of the * RPSL, the RCSL or the GPL. * * This file is part of the Helix DNA Technology. RealNetworks is the * developer of the Original Code and owns the copyrights in the * portions it created. * * This file, and the files included with this file, is distributed * and made available on an 'AS IS' basis, WITHOUT WARRANTY OF ANY * KIND, EITHER EXPRESS OR IMPLIED, AND REALNETWORKS HEREBY DISCLAIMS * ALL SUCH WARRANTIES, INCLUDING WITHOUT LIMITATION, ANY WARRANTIES * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, QUIET * ENJOYMENT OR NON-INFRINGEMENT. * * Technology Compatibility Kit Test Suite(s) Location: * http://www.helixcommunity.org/content/tck * * Contributor(s): * * ***** END LICENSE BLOCK ***** */#if !defined( _SOCK_INL_ )#define _SOCK_INL_#include "hxsock.h"/* * First the CHXSock inlines */// This function branches on whether the socket is TCP or UDP // (different code for getting through a Firewall)#if defined( _INLINE_CHXSOCK_ )__inline int PASCAL FAR CHXSock::HXconnect( SOCKET s, const struct sockaddr FAR *name, int namelen ){ assert( m_hLib && _hxconnect /* && gpProxy */ ); return( _hxconnect( s, (const struct ::sockaddr FAR *)name, namelen ) );}// This function branches on whether the socket is TCP or UDP // (different code for getting through a Firewall)__inline int PASCAL FAR CHXSock::HXbind ( SOCKET s, const struct sockaddr FAR *addr, int namelen ){ assert( m_hLib && _hxbind /* && gpProxy */ ); return( _hxbind( s, (const struct ::sockaddr FAR *)addr, namelen ) );}// This function branches on whether the socket is TCP or UDP // (different code for getting through a Firewall)__inline int PASCAL FAR CHXSock::HXlisten( SOCKET s, int backlog ){ assert( m_hLib && _hxlisten /* && gpProxy */ ); return( _hxlisten( s, backlog ) );}// This function branches on whether the socket is TCP or UDP // (different code for getting through a Firewall)__inline int PASCAL FAR CHXSock::HXgetsockname( SOCKET s, struct sockaddr FAR *name, int FAR * namelen ){ assert( m_hLib && _hxgetsockname /* && gpProxy */ ); return( _hxgetsockname( s, (struct ::sockaddr FAR *)name, namelen ) );}// This function branches on whether the socket is TCP or UDP // (different code for getting through a Firewall)__inline u_int PASCAL FAR CHXSock::HXaccept( SOCKET s, struct sockaddr FAR *addr, int FAR *addrlen ){ assert( m_hLib && _hxaccept /* && gpProxy */ ); return( _hxaccept( s, (struct ::sockaddr FAR *)addr, addrlen ) );}__inline int PASCAL FAR CHXSock::HXclosesocket( SOCKET s ){ assert( m_hLib && _hxclosesocket ); return( _hxclosesocket( s ) );}__inline int PASCAL FAR CHXSock::HXioctlsocket( SOCKET s, long cmd, u_long FAR *argp ){ assert( m_hLib && _hxioctlsocket ); return( _hxioctlsocket( s, cmd, argp ) );}__inline int PASCAL FAR CHXSock::HXgetpeername( SOCKET s, struct sockaddr FAR *name, int FAR * namelen ){ assert( m_hLib && _hxgetpeername ); return( _hxgetpeername( s, name, namelen ) );}__inline int PASCAL FAR CHXSock::HXgetsockopt( SOCKET s, int level, int optname, char FAR * optval, int FAR *optlen ){ assert( m_hLib && _hxgetsockopt ); return( _hxgetsockopt( s, level, optname, optval, optlen ) );}__inline u_long PASCAL FAR CHXSock::HXhtonl( u_long hostlong ){ assert( m_hLib && _hxhtonl ); return( _hxhtonl( hostlong ) );}__inline u_short PASCAL FAR CHXSock::HXhtons( u_short hostshort ){ assert( m_hLib && _hxhtons ); return( _hxhtons( hostshort ) );}__inline unsigned long PASCAL FAR CHXSock::HXinet_addr( const char FAR * cp ){ assert( m_hLib && _hxinet_addr ); return( _hxinet_addr( cp ) );}__inline char FAR * PASCAL FAR CHXSock::HXinet_ntoa( struct in_addr in ){ assert( m_hLib && _hxinet_ntoa ); return( _hxinet_ntoa( in ) );}__inline u_long PASCAL FAR CHXSock::HXntohl( u_long netlong ){ assert( m_hLib && _hxntohl ); return( _hxntohl( netlong ) );}__inline u_short PASCAL FAR CHXSock::HXntohs( u_short netshort ){ assert( m_hLib && _hxntohs ); return( _hxntohs( netshort ) );}__inline int PASCAL FAR CHXSock::HXrecv( SOCKET s, char FAR * buf, int len, int flags ){ assert( m_hLib && _hxrecv ); return( _hxrecv( s, buf, len, flags ) );}__inline int PASCAL FAR CHXSock::HXrecvfrom( SOCKET s, char FAR * buf, int len, int flags, struct sockaddr FAR *from, int FAR * fromlen ){ assert( m_hLib && _hxrecvfrom ); return( _hxrecvfrom( s, buf, len, flags, from, fromlen ) );}__inline int PASCAL FAR CHXSock::HXselect( int nfds, fd_set FAR *readfds, fd_set FAR *writefds, fd_set FAR *exceptfds, const struct timeval FAR *timeout ){ assert( m_hLib && _hxselect ); return( _hxselect( nfds, readfds, writefds, exceptfds, timeout ) );}__inline int PASCAL FAR CHXSock::HXsend( SOCKET s, const char FAR * buf, int len, int flags ){ assert( m_hLib && _hxsend ); return( _hxsend( s, buf, len, flags ) );}__inline int PASCAL FAR CHXSock::HXsendto( SOCKET s, const char FAR * buf, int len, int flags, const struct sockaddr FAR *to, int tolen ){ assert( m_hLib && _hxsendto ); return( _hxsendto( s, buf, len, flags, to, tolen ) );}__inline int PASCAL FAR CHXSock::HXsetsockopt( SOCKET s, int level, int optname, const char FAR * optval, int optlen ){ assert( m_hLib && _hxsetsockopt ); return( _hxsetsockopt( s, level, optname, optval, optlen ) );}__inline int PASCAL FAR CHXSock::HXshutdown( SOCKET s, int how ){ assert( m_hLib && _hxshutdown ); return( _hxshutdown( s, how ) );}__inline SOCKET PASCAL FAR CHXSock::HXsocket( int af, int type, int protocol ){ assert( m_hLib && _hxsocket ); return( _hxsocket( af, type, protocol ) );}/* Database function prototypes */__inline struct hostent FAR * PASCAL FAR CHXSock::HXgethostbyaddr( const char FAR * addr, int len, int type ){ assert( m_hLib && _hxgethostbyaddr ); return( _hxgethostbyaddr( addr, len, type ) );}__inline struct hostent FAR * PASCAL FAR CHXSock::HXgethostbyname( const char FAR * name ){ struct hostent FAR *lpHost; assert( m_hLib && _hxgethostbyname ); lpHost = _hxgethostbyname( name ); return( lpHost );}__inline int PASCAL FAR CHXSock::HXgethostname( char FAR * name, int namelen ){ assert( m_hLib && _hxgethostname ); return( _hxgethostname( name, namelen ) );}#ifndef _WINCE__inline struct servent FAR * PASCAL FAR CHXSock::HXgetservbyport( int port, const char FAR * proto ){ assert( m_hLib && _hxgetservbyport ); return( _hxgetservbyport( port, proto ) );}__inline struct servent FAR * PASCAL FAR CHXSock::HXgetservbyname( const char FAR * name, const char FAR * proto ){ assert( m_hLib && _hxgetservbyname ); return( _hxgetservbyname( name, proto ) );}__inline struct protoent FAR * PASCAL FAR CHXSock::HXgetprotobynumber( int proto ){ assert( m_hLib && _hxgetprotobynumber ); return( _hxgetprotobynumber( proto ) );}__inline struct protoent FAR * PASCAL FAR CHXSock::HXgetprotobyname( const char FAR * name ){ assert( m_hLib && _hxgetprotobyname ); return( _hxgetprotobyname( name ) );}#endif /* _WINCE *//* Microsoft Windows Extension function prototypes */__inline int PASCAL FAR CHXSock::HXWSAStartup( WORD wVersionRequired, LPWSADATA lpWSAData ){ int iRet; assert( m_hLib && _hxWSAStartup ); iRet = _hxWSAStartup( wVersionRequired, lpWSAData ); if (iRet) { return( iRet ); } else { return( 0 ); }}__inline int PASCAL FAR CHXSock::HXWSACleanup( void ){ assert( m_hLib && _hxWSACleanup ); return( _hxWSACleanup() );}__inline void PASCAL FAR CHXSock::HXWSASetLastError( int iError ){ assert( m_hLib && _hxWSASetLastError ); _hxWSASetLastError( iError );}__inline int PASCAL FAR CHXSock::HXWSAGetLastError( void ){ assert( m_hLib && _hxWSAGetLastError ); return( _hxWSAGetLastError() );}#ifndef _WINCE__inline BOOL PASCAL FAR CHXSock::HXWSAIsBlocking( void ){ assert( m_hLib && _hxWSAIsBlocking ); return( _hxWSAIsBlocking() );}__inline int PASCAL FAR CHXSock::HXWSAUnhookBlockingHook( void ){ assert( m_hLib && _hxWSAUnhookBlockingHook ); return( _hxWSAUnhookBlockingHook() );}__inline FARPROC PASCAL FAR CHXSock::HXWSASetBlockingHook( FARPROC lpBlockFunc ){ assert( m_hLib && _hxWSASetBlockingHook ); return( _hxWSASetBlockingHook( lpBlockFunc ) );}__inline int PASCAL FAR CHXSock::HXWSACancelBlockingCall( void ){ assert( m_hLib && _hxWSACancelBlockingCall ); return( _hxWSACancelBlockingCall() );}__inline HANDLE PASCAL FAR CHXSock::HXWSAAsyncGetServByName( HWND hWnd, u_int wMsg, const char FAR * name, const char FAR * proto, char FAR * buf, int buflen ){ assert( m_hLib && _hxWSAAsyncGetServByName ); return( _hxWSAAsyncGetServByName( hWnd, wMsg, name, proto, buf, buflen ) );}__inline HANDLE PASCAL FAR CHXSock::HXWSAAsyncGetServByPort( HWND hWnd, u_int wMsg, int port, const char FAR * proto, char FAR * buf, int buflen ){ assert( m_hLib && _hxWSAAsyncGetServByPort ); return( _hxWSAAsyncGetServByPort( hWnd, wMsg, port, proto, buf, buflen ) );}__inline HANDLE PASCAL FAR CHXSock::HXWSAAsyncGetProtoByName( HWND hWnd, u_int wMsg, const char FAR * name, char FAR * buf, int buflen ){ assert( m_hLib && _hxWSAAsyncGetProtoByName ); return( _hxWSAAsyncGetProtoByName( hWnd, wMsg, name, buf, buflen ) );}__inline HANDLE PASCAL FAR CHXSock::HXWSAAsyncGetProtoByNumber( HWND hWnd, u_int wMsg, int number, char FAR * buf, int buflen ){ assert( m_hLib && _hxWSAAsyncGetProtoByNumber ); return( _hxWSAAsyncGetProtoByNumber( hWnd, wMsg, number, buf, buflen ) );}__inline HANDLE PASCAL FAR CHXSock::HXWSAAsyncGetHostByName( HWND hWnd, u_int wMsg, const char FAR * name, char FAR * buf, int buflen ){ assert( m_hLib && _hxWSAAsyncGetHostByName ); return( _hxWSAAsyncGetHostByName( hWnd, wMsg, name, buf, buflen ) );}__inline HANDLE PASCAL FAR CHXSock::HXWSAAsyncGetHostByAddr( HWND hWnd, u_int wMsg, const char FAR * addr, int len, int type, const char FAR * buf, int buflen ){ assert( m_hLib && _hxWSAAsyncGetHostByAddr ); return( _hxWSAAsyncGetHostByAddr( hWnd, wMsg, addr, len, type, buf, buflen ) );}__inline int PASCAL FAR CHXSock::HXWSACancelAsyncRequest( HANDLE hAsyncTaskHandle ){ assert( m_hLib && _hxWSACancelAsyncRequest ); return( _hxWSACancelAsyncRequest( hAsyncTaskHandle ) );}__inline int PASCAL FAR CHXSock::HXWSAAsyncSelect( SOCKET s, HWND hWnd, u_int wMsg, long lEvent){ assert( m_hLib && _hxWSAAsyncSelect ); return( _hxWSAAsyncSelect( s, hWnd, wMsg, lEvent ) );}#endif /* _WINCE */__inline int PASCAL FAR CHXSock::HX__WSAFDIsSet( SOCKET s, fd_set FAR *fdSet ){ assert( m_hLib && _hxWSAFDIsSet ); return( _hxWSAFDIsSet( s, fdSet ) );}#undef _INLINE_CHXSOCK_#endif // #if defined( _INLINE_CHXSOCK_ )#endif // if !defined( _SOCK_INL_ )
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -