home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Tricks of the Windows Gam…ming Gurus (2nd Edition)
/
Disc2.iso
/
vc98
/
include
/
session.h
< prev
next >
Wrap
C/C++ Source or Header
|
1998-04-25
|
3KB
|
121 lines
#if !defined(SESSION_H)
#define SESSION_H
/*
================================================================================
========================================================================
========================================================================
File: csession.h
Description:
Created: 9/3/1997
Author: Matthijs Gates
Mail: mgates@microsoft.com
Copyright (C) 1997 Microsoft Corporation. All Rights Reserved.
========================================================================
========================================================================
================================================================================
*/
#include "brtest.h"
#include "util.h"
//==============================================================================
//
// Class: CSession
//
//------------------------------------------------------------------------------
// Description: abstract root class for Sessions (Tunnels, Multicasts,
// etc...); provides a set of primitive methods that
// sessions must implement
//
// Public methods:
// Send() send a CData object over the session
//
// Public properties:
// - none -
//
// 9/3/1997
// mgates
//
//==============================================================================
class CSession
{
WSADATA m_wsaData ;
enum { WINSOCK_MAJOR_VER = 2, WINSOCK_MINOR_VER = 0 } ;
// P U B L I C
public :
CSession() ;
virtual ~CSession() ;
virtual INT Send(CData &data) = 0 ;
// P R O T E C T E D
protected :
} ;
//==============================================================================
//
// Class: CMulticast
//
//------------------------------------------------------------------------------
// Description:
//
// Public methods:
//
// Public properties:
//
// 9/14/1997
// mgates@microsoft.com
//
//==============================================================================
class CMulticast : public CSession
{
CString m_strIP ;
CString m_strNIC ;
USHORT m_usPort ;
SOCKET m_socket ;
SOCKADDR_IN m_destinationAddr ;
SOCKADDR_IN m_thisAddr ;
USHORT m_usTTL ;
enum { DEF_TTL = 10
} ;
// P U B L I C -------------------------------------------------------------
public :
CMulticast() ;
virtual ~CMulticast() ;
BOOL SetIP(CString &strIP) ;
BOOL SetIP(char *szIP) ;
BOOL SetPort(USHORT usPort) { m_usPort = usPort ; return TRUE ; }
BOOL SetNIC(CString &strNIC) ;
BOOL SetNIC(char *szNIC) ;
BOOL SetTTL(USHORT usTTL) { m_usTTL = usTTL ; return TRUE ; }
USHORT GetTTL() { return m_usTTL ; }
BOOL Create() ;
INT Send(CData &data) ;
CString &GetIP() { return m_strIP ; }
USHORT GetPort() { return m_usPort ; }
CString &GetNIC() { return m_strNIC ; }
} ;
#endif // SESSION_H