1,178
社区成员




//----------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include <tchar.h>
#include <stdio.h>
#include <memory>
#include "ServerMethodsUnit1.h"
#include "ServerContainerUnit1.h"
/* 引入头文件 */
#include <Datasnap.DSSession.hpp>
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TServerContainer1 *ServerContainer1;
//---------------------------------------------------------------------------
__fastcall TServerContainer1::TServerContainer1(TComponent* Owner)
: TDataModule(Owner)
{
}
//----------------------------------------------------------------------------
void __fastcall TServerContainer1::DSServerClass1GetClass(TDSServerClass *DSServerClass,
TPersistentClass &PersistentClass)
{
PersistentClass = __classid(TServerMethods1);
}
//----------------------------------------------------------------------------
void __fastcall TServerContainer1::DSServer1Connect(TDSConnectEventObject *DSConnectEventObject)
{
UnicodeString IP = DSConnectEventObject->ChannelInfo->ClientInfo.IpAddress;
TDSSession *DSSession = TDSSessionManager::GetThreadSession();
UnicodeString Key = DSSession->Id;
DSSession->PutData(Key, IP);
}
//---------------------------------------------------------------------------
服务方法中取IP
//----------------------------------------------------------------------------
#include <System.SysUtils.hpp>
#include <System.StrUtils.hpp>
/* 引入头文件 */
#include <Datasnap.DSSession.hpp>
#pragma hdrstop
#include "ServerMethodsUnit1.h"
//----------------------------------------------------------------------------
#pragma package(smart_init)
UnicodeString TServerMethods1::GetIP()
{
TDSSession *Session = TDSSessionManager::GetThreadSession();
UnicodeString Key = Session->Id;
return Session->GetData(Key);
}